Index: libfdproto/dictionary.c
===================================================================
--- libfdproto/dictionary.c	(revision 972)
+++ libfdproto/dictionary.c	(revision 974)
@@ -315,5 +315,5 @@
 		{
 			if (obj) {
-				TRACE_DEBUG(FULL, "Invalid object : %p\n"
+				TRACE_DEBUG(FULL, "Invalid object : %p"
 						  "     obj->objeyec : %x / %x\n"
 						  "     obj->type    : %d\n"
@@ -1282,5 +1282,5 @@
 		for (i=0; i<NB_LISTS_PER_OBJ; i++) {
 			if ((obj->list[i].o == NULL) && (obj->list[i].next != &obj->list[i])) {
-				fd_log_debug("%*s>%p: list[%d]:\n", indent, "", obj, i);
+				fd_log_debug("%*s>%p: list[%d]:", indent, "", obj, i);
 				dump_list(&obj->list[i], parents, depth - 1, indent + 2);
 			}
@@ -1291,5 +1291,5 @@
 void fd_dict_dump_object(struct dict_object * obj)
 {
-	fd_log_debug("Dictionary object %p dump:\n", obj);
+	fd_log_debug("Dictionary object %p dump:", obj);
 	dump_object( obj, 1, 2, 2 );
 }
@@ -1304,6 +1304,6 @@
 	CHECK_POSIX_DO(  pthread_rwlock_rdlock( &dict->dict_lock ), /* ignore */  );
 	
-	fd_log_debug("######################################################\n");
-	fd_log_debug("###### Dumping vendors, AVPs and related rules #######\n");
+	fd_log_debug("######################################################");
+	fd_log_debug("###### Dumping vendors, AVPs and related rules #######");
 	
 	dump_object( &dict->dict_vendors, 0, 3, 0 );
@@ -1311,5 +1311,5 @@
 		dump_object( li->o, 0, 3, 0 );
 	
-	fd_log_debug("######          Dumping applications           #######\n");
+	fd_log_debug("######          Dumping applications           #######");
 
 	dump_object( &dict->dict_applications, 0, 1, 0 );
@@ -1317,22 +1317,22 @@
 		dump_object( li->o, 0, 1, 0 );
 	
-	fd_log_debug("######             Dumping types               #######\n");
+	fd_log_debug("######             Dumping types               #######");
 
 	dump_list( &dict->dict_types, 0, 2, 0 );
 	
-	fd_log_debug("######      Dumping commands per name          #######\n");
+	fd_log_debug("######      Dumping commands per name          #######");
 
 	dump_list( &dict->dict_cmd_name, 0, 2, 0 );
 	
-	fd_log_debug("######   Dumping commands per code and flags   #######\n");
+	fd_log_debug("######   Dumping commands per code and flags   #######");
 
 	dump_list( &dict->dict_cmd_code, 0, 0, 0 );
 	
-	fd_log_debug("######             Statistics                  #######\n");
+	fd_log_debug("######             Statistics                  #######");
 
 	for (i=1; i<=DICT_TYPE_MAX; i++)
-		fd_log_debug(" %5d objects of type %s\n", dict->dict_count[i], dict_obj_info[i].name);
-	
-	fd_log_debug("######################################################\n");
+		fd_log_debug(" %5d objects of type %s", dict->dict_count[i], dict_obj_info[i].name);
+	
+	fd_log_debug("######################################################");
 	
 	/* Free the rwlock */
@@ -1867,7 +1867,7 @@
 			TRACE_DEBUG(INFO, "An existing object with different non-key data was found: EEXIST");
 			if (TRACE_BOOL(INFO)) {
-				fd_log_debug("New object to insert:\n");
+				fd_log_debug("New object to insert:");
 				dump_object(new, 0, 0, 3);
-				fd_log_debug("Object already in dictionary:\n");			
+				fd_log_debug("Object already in dictionary:");			
 				dump_object(locref, 0, 0 , 3);
 			}
Index: libfdproto/fifo.c
===================================================================
--- libfdproto/fifo.c	(revision 767)
+++ libfdproto/fifo.c	(revision 974)
@@ -115,16 +115,16 @@
 		return;
 	
-	fd_log_debug("Dumping queue '%s' (%p):\n", name ?: "?", queue);
+	fd_log_debug("Dumping queue '%s' (%p):", name ?: "?", queue);
 	if (!CHECK_FIFO( queue )) {
-		fd_log_debug("  Queue invalid!\n");
+		fd_log_debug("  Queue invalid!");
 		if (queue)
-			fd_log_debug("  (%x != %x)\n", queue->eyec, FIFO_EYEC);
+			fd_log_debug("  (%x != %x)", queue->eyec, FIFO_EYEC);
 		return;
 	}
 	
 	CHECK_POSIX_DO(  pthread_mutex_lock( &queue->mtx ), /* continue */  );
-	fd_log_debug("   %d elements in queue / %d threads waiting\n", queue->count, queue->thrs);
-	fd_log_debug("   %d elements max / %d threads waiting to push\n", queue->max, queue->thrs_push);
-	fd_log_debug("   thresholds: %d / %d (h:%d), cb: %p,%p (%p), highest: %d\n",
+	fd_log_debug("   %d elements in queue / %d threads waiting", queue->count, queue->thrs);
+	fd_log_debug("   %d elements max / %d threads waiting to push", queue->max, queue->thrs_push);
+	fd_log_debug("   thresholds: %d / %d (h:%d), cb: %p,%p (%p), highest: %d",
 			queue->high, queue->low, queue->highest, 
 			queue->h_cb, queue->l_cb, queue->data,
@@ -135,5 +135,5 @@
 		int i = 0;
 		for (li = queue->list.next; li != &queue->list; li = li->next) {
-			fd_log_debug("  [%i] item %p in fifo %p:\n", i++, li->o, queue);
+			fd_log_debug("  [%i] item %p in fifo %p:", i++, li->o, queue);
 			(*dump_item)(level, li->o);
 		}
Index: libfdproto/init.c
===================================================================
--- libfdproto/init.c	(revision 740)
+++ libfdproto/init.c	(revision 974)
@@ -40,5 +40,5 @@
 	if (TRACE_BOOL(ANNOYING)) {
 		if (str) {
-			fd_log_debug("(Thread '%s' terminating)\n", (char *)str);
+			fd_log_debug("(Thread '%s' terminating)", (char *)str);
 		}
 	}
Index: libfdproto/log.c
===================================================================
--- libfdproto/log.c	(revision 966)
+++ libfdproto/log.c	(revision 974)
@@ -166,7 +166,7 @@
 	if (TRACE_BOOL(ANNOYING)) {
 		if (val) {
-			fd_log_debug("(Thread '%s' renamed to '%s')\n", (char *)val, name?:"(nil)");
+			fd_log_debug("(Thread '%s' renamed to '%s')", (char *)val, name?:"(nil)");
 		} else {
-			fd_log_debug("(Thread %p named '%s')\n", pthread_self(), name?:"(nil)");
+			fd_log_debug("(Thread %p named '%s')", pthread_self(), name?:"(nil)");
 		}
 	}
Index: libfdproto/messages.c
===================================================================
--- libfdproto/messages.c	(revision 961)
+++ libfdproto/messages.c	(revision 974)
@@ -829,8 +829,8 @@
 	char *outstr;
 	size_t offset, outlen;
-	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), { fd_log_debug_fstr(fstr, "Error initializing string for dumping %p\n", msg); return; } );
+	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), { fd_log_debug_fstr(fstr, "Error initializing string for dumping %p", msg); return; } );
 	do {
 		CHECK_FCT_DO(  msg_dump_intern ( NONE, ref, indent, &outstr, &offset, &outlen ),
-				fd_log_debug_fstr(fstr, "Error while dumping %p\n", ref) );
+				fd_log_debug_fstr(fstr, "Error while dumping %p", ref) );
 		
 		/* Now find the next object */
@@ -841,5 +841,5 @@
 	
 	/* now really output this in one shot, so it is not interrupted */
-	fd_log_debug_fstr(fstr, "%s\n", outstr);
+	fd_log_debug_fstr(fstr, "%s", outstr);
 	
 	free(outstr);
@@ -849,9 +849,9 @@
 	char *outstr;
 	size_t offset, outlen;
-	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), { fd_log_debug_fstr(fstr, "Error initializing string for dumping %p\n", msg); return; } );
+	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), { fd_log_debug_fstr(fstr, "Error initializing string for dumping %p", msg); return; } );
 	CHECK_FCT_DO(  msg_dump_intern ( NONE, msg, 2, &outstr, &offset, &outlen ),
-				fd_log_debug_fstr(fstr, "Error while dumping %p\n", msg) );
+				fd_log_debug_fstr(fstr, "Error while dumping %p", msg) );
 	/* now really output this in one shot, so it is not interrupted */
-	fd_log_debug_fstr(fstr, "%s\n", outstr);
+	fd_log_debug_fstr(fstr, "%s", outstr);
 	
 	free(outstr);
@@ -866,9 +866,9 @@
 	size_t offset, outlen;
 	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), 
-			{ fd_log_debug_fstr(fd_g_debug_fstr, "Error initializing string for dumping %p\n", obj); return; } );
+			{ fd_log_debug_fstr(fd_g_debug_fstr, "Error initializing string for dumping %p", obj); return; } );
 
 	do {
 		CHECK_FCT_DO(  msg_dump_intern ( level, ref, indent, &outstr, &offset, &outlen ),
-				fd_log_debug_fstr(fd_g_debug_fstr, "Error while dumping %p\n", ref) );
+				fd_log_debug_fstr(fd_g_debug_fstr, "Error while dumping %p", ref) );
 		
 		/* Now find the next object */
@@ -892,7 +892,7 @@
 	size_t offset, outlen;
 	CHECK_FCT_DO( dump_init_str(&outstr, &offset, &outlen), 
-			{ fd_log_debug_fstr(fd_g_debug_fstr, "Error initializing string for dumping %p\n", obj); return; } );
+			{ fd_log_debug_fstr(fd_g_debug_fstr, "Error initializing string for dumping %p", obj); return; } );
 	CHECK_FCT_DO(  msg_dump_intern ( level, obj, 1, &outstr, &offset, &outlen ),
-			fd_log_debug_fstr(fd_g_debug_fstr, "Error while dumping %p\n", obj) );
+			fd_log_debug_fstr(fd_g_debug_fstr, "Error while dumping %p", obj) );
 	TRACE_DEBUG(level, "------ Dumping object %p (s)-------", obj);
 	TRACE_DEBUG(level, "%s", outstr);
Index: libfdproto/msg_log.c
===================================================================
--- libfdproto/msg_log.c	(revision 928)
+++ libfdproto/msg_log.c	(revision 974)
@@ -181,5 +181,5 @@
 	(void)pthread_mutex_unlock(&fd_log_lock);
 	
-	fd_log_debug_fstr(fstr, "\n Logged: %s\n", buftime);
+	fd_log_debug_fstr(fstr, " Logged: %s", buftime);
 	
 	/* And now the message itself */
Index: libfdproto/sessions.c
===================================================================
--- libfdproto/sessions.c	(revision 928)
+++ libfdproto/sessions.c	(revision 974)
@@ -882,13 +882,13 @@
 		return;
 	
-	fd_log_debug("\t  %*s -- Session @%p --\n", level, "", session);
+	fd_log_debug("\t  %*s -- Session @%p --", level, "", session);
 	if (!VALIDATE_SI(session)) {
-		fd_log_debug("\t  %*s  Invalid session object\n", level, "");
+		fd_log_debug("\t  %*s  Invalid session object", level, "");
 	} else {
 		
-		fd_log_debug("\t  %*s  sid '%s'(%zd), hash %x, msg %d, destroyed %d\n", level, "", session->sid, session->sidlen, session->hash, session->msg_cnt, session->is_destroyed);
+		fd_log_debug("\t  %*s  sid '%s'(%zd), hash %x, msg %d, destroyed %d", level, "", session->sid, session->sidlen, session->hash, session->msg_cnt, session->is_destroyed);
 
 		strftime(buf, sizeof(buf), "%D,%T", localtime_r( &session->timeout.tv_sec , &tm ));
-		fd_log_debug("\t  %*s  timeout %s.%09ld\n", level, "", buf, session->timeout.tv_nsec);
+		fd_log_debug("\t  %*s  timeout %s.%09ld", level, "", buf, session->timeout.tv_nsec);
 
 		CHECK_POSIX_DO( pthread_mutex_lock(&session->stlock), /* ignore */ );
@@ -896,10 +896,10 @@
 		for (li = session->states.next; li != &session->states; li = li->next) {
 			struct state * st = (struct state *)(li->o);
-			fd_log_debug("\t  %*s    handler %d registered data %p\n", level, "", st->hdl->id, st->state);
+			fd_log_debug("\t  %*s    handler %d registered data %p", level, "", st->hdl->id, st->state);
 		}
 		pthread_cleanup_pop(0);
 		CHECK_POSIX_DO( pthread_mutex_unlock(&session->stlock), /* ignore */ );
 	}
-	fd_log_debug("\t  %*s -- end of session @%p --\n", level, "", session);
+	fd_log_debug("\t  %*s -- end of session @%p --", level, "", session);
 }
 
@@ -909,11 +909,11 @@
 		return;
 	
-	fd_log_debug("\t  %*s -- Handler @%p --\n", level, "", handler);
+	fd_log_debug("\t  %*s -- Handler @%p --", level, "", handler);
 	if (!VALIDATE_SH(handler)) {
-		fd_log_debug("\t  %*s  Invalid session handler object\n", level, "");
+		fd_log_debug("\t  %*s  Invalid session handler object", level, "");
 	} else {
-		fd_log_debug("\t  %*s  id %d, cleanup %p, opaque %p\n", level, "", handler->id, handler->cleanup, handler->opaque);
-	}
-	fd_log_debug("\t  %*s -- end of handler @%p --\n", level, "", handler);
+		fd_log_debug("\t  %*s  id %d, cleanup %p, opaque %p", level, "", handler->id, handler->cleanup, handler->opaque);
+	}
+	fd_log_debug("\t  %*s -- end of handler @%p --", level, "", handler);
 }	
 
