diff -urN mu-conference-0.5.1/include/conference.h mu-conference-0.5.1-wpjabber_104/include/conference.h
--- mu-conference-0.5.1/include/conference.h	Fri Mar 14 07:08:21 2003
+++ mu-conference-0.5.1-wpjabber_104/include/conference.h	Mon Apr 21 23:38:41 2003
@@ -33,7 +33,7 @@
 
 #define NAME			"MU-Conference"
 #undef VERSION
-#define VERSION 		"0.5.1"
+#define VERSION 		"0.5.1-wpjabber"
 
 #define FZONE funcstr(__FILE__,__FUNCTION__,__LINE__)
 
diff -urN mu-conference-0.5.1/src/conference.c mu-conference-0.5.1-wpjabber_104/src/conference.c
--- mu-conference-0.5.1/src/conference.c	Tue Mar 11 04:22:09 2003
+++ mu-conference-0.5.1-wpjabber_104/src/conference.c	Mon Apr 21 23:37:09 2003
@@ -740,6 +740,63 @@
     }
 }
 
+#ifdef WPJABBER
+/* heartbeat checker for maintainance */
+void con_beat_update_mtq(void *arg) {
+    cni master = (cni)arg;
+
+    time_t t = time(NULL);
+    int mins = minuteget(t);
+    char *tstamp = timeget(t);
+    char *dstamp = dateget(t);
+
+    /* Check for timed out idle rooms */
+    if(mins % 2 == 0)
+    {
+	  htb_walk(&master->rooms, _con_beat_idle,(void*)t);
+    }
+
+    /* Check for logfiles requiring updating */
+    if(mins % 5 == 0)
+    {
+        htb_walk(&master->rooms,_con_beat_logupdate,(void*)tstamp);
+        free(tstamp);
+    }
+
+    if(j_strcmp(master->day, dstamp) == 0)
+    {
+        free(dstamp);
+        return;
+    }
+
+    master->day = pstrdup(master->i->p, dstamp);
+    free(dstamp);
+
+    htb_walk(&master->rooms, _con_beat_logrotate, NULL);
+    return;
+}
+
+result con_beat_update(void *arg) {
+  cni master = (cni)arg;
+
+  mtq_send(master->q, NULL, con_beat_update_mtq, arg);
+  return r_DONE;
+}
+
+/* heartbeat checker for miscellaneous tasks */
+void con_beat_housekeep_mtq(void *arg) {
+  cni master = (cni)arg;
+
+  master->loader = 1;
+  xdb_rooms_get(master);
+}
+result con_beat_housekeep(void *arg) {
+  cni master = (cni)arg;
+
+  mtq_send(master->q, NULL, con_beat_housekeep_mtq, arg);
+  return r_UNREG;
+}
+#else
 /* heartbeat checker for maintainance */
 result con_beat_update(void *arg)
 {
@@ -753,7 +810,7 @@
     /* Check for timed out idle rooms */
     if(mins % 2 == 0)
     {
-	htb_walk(&master->rooms, _con_beat_idle,(void*)t);
+	  htb_walk(&master->rooms, _con_beat_idle,(void*)t);
     }
 
     /* Check for logfiles requiring updating */
@@ -787,7 +844,7 @@
     /* Remove unwanted heartbeat */
     return r_UNREG;
 }
-
+#endif
 /*** everything starts here ***/
 void conference(instance i, xmlnode x)
 {
diff -urN mu-conference-0.5.1/src/conference_room.c mu-conference-0.5.1-wpjabber_104/src/conference_room.c
--- mu-conference-0.5.1/src/conference_room.c	Thu Mar 13 03:23:35 2003
+++ mu-conference-0.5.1-wpjabber_104/src/conference_room.c	Mon Apr 21 23:37:09 2003
@@ -29,7 +29,11 @@
  * --------------------------------------------------------------------------*/
 
 #include "conference.h"
+#ifdef WPJABBER
+extern jabber_deliver j__deliver;
+#else
 extern int deliver__flag;
+#endif
 
 void con_room_log(cnr room, char *nick, char *message)
 {
@@ -1085,13 +1089,21 @@
 
     xmlnode_put_attrib(x, "from", jid_full(jid_fix(room->id)));
 
+#ifdef WPJABBER
+    j__deliver->deliver__flag = 0;
+#else
     deliver__flag = 0;
+#endif
 
     if(legacy)
         htb_walk(&room->local, _con_room_send_legacy, (void*)x);
     else
         htb_walk(&room->local, _con_room_send, (void*)x);
+#ifdef WPJABBER
+    j__deliver->deliver__flag = 1;
+#else
     deliver__flag = 1;
+#endif
     deliver(NULL, NULL);
 
     xmlnode_free(x);
diff -urN mu-conference-0.5.1/src/conference_user.c mu-conference-0.5.1-wpjabber_104/src/conference_user.c
--- mu-conference-0.5.1/src/conference_user.c	Mon Mar 10 02:03:07 2003
+++ mu-conference-0.5.1-wpjabber_104/src/conference_user.c	Mon Apr 21 23:37:09 2003
@@ -29,7 +29,11 @@
  * --------------------------------------------------------------------------*/
 
 #include "conference.h"
+#ifdef WPJABBER
+extern jabber_deliver j__deliver;
+#else
 extern int deliver__flag;
+#endif
 
 cnu con_user_new(cnr room, jid id)
 {
@@ -203,9 +207,15 @@
     xmlnode_free(user->nick);
     user->nick = node;
 
+#ifdef WPJABBER
+    j__deliver->deliver__flag = 0;
+    htb_walk(&room->local, _con_user_nick, (void*)user);
+    j__deliver->deliver__flag = 1;
+#else
     deliver__flag = 0;
     htb_walk(&room->local, _con_user_nick, (void*)user);
     deliver__flag = 1;
+#endif
     deliver(NULL, NULL);
 
     /* send nick change notice if availble */
@@ -296,7 +306,11 @@
     htb_walk(&room->local, _con_user_enter, (void*)user);
 
     /* Switch to queue mode */
+#ifdef WPJABBER
+    j__deliver->deliver__flag = 0;
+#else
     deliver__flag = 0;
+#endif
 
     /* loop through history and send back */
     if(room->master->history == 0)
@@ -322,7 +336,11 @@
     }
 
     /* Re-enable delivery */
+#ifdef WPJABBER
+    j__deliver->deliver__flag = 1;
+#else
     deliver__flag = 1;
+#endif
     /* Send queued messages */
     deliver(NULL, NULL);
 
