Index: trunk/src/sh_database.c
===================================================================
--- trunk/src/sh_database.c	(revision 225)
+++ trunk/src/sh_database.c	(revision 226)
@@ -1766,8 +1766,7 @@
 /* recursively enter linked list of messages into database, last first
  */
-long sh_database_insert_rec (dbins * curr, int depth)
+long sh_database_insert_rec (dbins * curr, int depth, char * host)
 {
   unsigned long    id = 0;
-  dbins * prev;
 
   SL_ENTER(_("sh_database_insert_rec"));
@@ -1775,8 +1774,15 @@
   if (curr->next)
     {
+      /*
       prev = curr->next;
       sl_strlcpy(prev->host, curr->host, 64);
       id = sh_database_insert_rec (curr->next, (depth + 1));
-    }
+      */
+      ++depth;
+      id = sh_database_insert_rec (curr->next, depth, curr->host);
+    }
+
+  if (host) 
+    sl_strlcpy(curr->host, host, 64);
 
   if (id != 0)                       /* this is a server wrapper          */
@@ -1818,5 +1824,5 @@
   /* recursively enter the linked list into the database
    */
-  (void) sh_database_insert_rec (db_entry, 0);
+  (void) sh_database_insert_rec (db_entry, 0, NULL);
 
   SL_RETURN(0, _("sh_database_insert"));
Index: trunk/src/sh_utils.c
===================================================================
--- trunk/src/sh_utils.c	(revision 225)
+++ trunk/src/sh_utils.c	(revision 226)
@@ -2107,5 +2107,6 @@
 
   
-size_t sh_util_base64_enc (unsigned char * out, const unsigned char * instr, 
+size_t sh_util_base64_enc (unsigned char * out, 
+			   const unsigned char * instr, 
 			   size_t lin)
 {
@@ -2171,5 +2172,6 @@
 }
 
-size_t sh_util_base64_dec (unsigned char *out, const unsigned char *in, 
+size_t sh_util_base64_dec (unsigned char *out, 
+			   const unsigned char *in, 
 			   size_t lin)
 {
