Index: extensions/dbg_interactive/dbg_interactive.i
===================================================================
--- extensions/dbg_interactive/dbg_interactive.i	(revision 788)
+++ extensions/dbg_interactive/dbg_interactive.i	(revision 979)
@@ -70,5 +70,5 @@
 static const char * wrapper_error_txt; /* if NULL, use strerror(errno) */
 #define DI_ERROR(code, pycode, str) {	\
-	fd_log_debug("[dbg_interactive] ERROR: %s: %s\n", __PRETTY_FUNCTION__, str ? str : strerror(code)); \
+	fd_log_debug("[dbg_interactive] ERROR: %s: %s", __PRETTY_FUNCTION__, str ? str : strerror(code)); \
 	wrapper_errno = code;		\
 	wrapper_errno_py = pycode;	\
Index: extensions/dbg_interactive/dictionary.i
===================================================================
--- extensions/dbg_interactive/dictionary.i	(revision 972)
+++ extensions/dbg_interactive/dictionary.i	(revision 979)
@@ -240,5 +240,5 @@
 		for (i=0; i < n; i++)
 			fd_log_debug("%02.2X", $self->data[i]);
-		fd_log_debug("] '%.*s%s'\n", n, $self->data, n == LEN_MAX ? "..." : "");
+		fd_log_debug("] '%.*s%s'", n, $self->data, n == LEN_MAX ? "..." : "");
 	}
 	%cstring_output_allocate_size(char ** outbuffer, size_t * outlen, free(*$1));
Index: extensions/dbg_interactive/dispatch.i
===================================================================
--- extensions/dbg_interactive/dispatch.i	(revision 741)
+++ extensions/dbg_interactive/dispatch.i	(revision 979)
@@ -47,5 +47,5 @@
 	
 	if (!pycb) {
-		fd_log_debug("Internal error: missing the callback!\n");
+		fd_log_debug("Internal error: missing the callback!");
 		return ENOTSUP;
 	}
@@ -63,5 +63,5 @@
 	/* The result is supposedly composed of: [ ret, *msg, *action ] */
 	if ((result == NULL) || (!PyList_Check(result)) || (PyList_Size(result) != 3)) {
-		fd_log_debug("Error: The Python callback did not return [ ret, msg, action ].\n");
+		fd_log_debug("Error: The Python callback did not return [ ret, msg, action ].");
 		ret = EINVAL;
 		goto out;
@@ -70,15 +70,15 @@
 	/* Convert the return values */
 	if (!SWIG_IsOK(SWIG_AsVal_int(PyList_GetItem(result, 0), &ret))) {
-		fd_log_debug("Error: Cannot convert the first return value to integer.\n");
+		fd_log_debug("Error: Cannot convert the first return value to integer.");
 		ret = EINVAL;
 		goto out;
 	}
 	if (ret) {
-		TRACE_DEBUG(INFO, "The Python callback returned the error code %d (%s)\n", ret, strerror(ret));
+		TRACE_DEBUG(INFO, "The Python callback returned the error code %d (%s)", ret, strerror(ret));
 		goto out;
 	}
 	
 	if (!SWIG_IsOK(SWIG_ConvertPtr(PyList_GetItem(result, 1), (void *)msg, SWIGTYPE_p_msg, SWIG_POINTER_DISOWN))) {
-		fd_log_debug("Error: Cannot convert the second return value to message.\n");
+		fd_log_debug("Error: Cannot convert the second return value to message.");
 		ret = EINVAL;
 		goto out;
@@ -86,10 +86,10 @@
 	
 	if (!SWIG_IsOK(SWIG_AsVal_int(PyList_GetItem(result, 2), (int *)action))) {
-		fd_log_debug("Error: Cannot convert the third return value to integer.\n");
+		fd_log_debug("Error: Cannot convert the third return value to integer.");
 		ret = EINVAL;
 		goto out;
 	}
 	
-	TRACE_DEBUG(FULL, "Python callback return: *action = %d\n", *action);
+	TRACE_DEBUG(FULL, "Python callback return: *action = %d", *action);
 out:	
 	Py_XDECREF(result);
Index: extensions/dbg_interactive/lists.i
===================================================================
--- extensions/dbg_interactive/lists.i	(revision 741)
+++ extensions/dbg_interactive/lists.i	(revision 979)
@@ -57,9 +57,9 @@
 	/* For debug, show the values of the list */
 	void dump() {
-		fd_log_debug("list: %p\n", $self);
-		fd_log_debug("  - next: %p\n", $self->next);
-		fd_log_debug("  - prev: %p\n", $self->prev);
-		fd_log_debug("  - head: %p\n", $self->head);
-		fd_log_debug("  - o   : %p\n", $self->o);
+		fd_log_debug("list: %p", $self);
+		fd_log_debug("  - next: %p", $self->next);
+		fd_log_debug("  - prev: %p", $self->prev);
+		fd_log_debug("  - head: %p", $self->head);
+		fd_log_debug("  - o   : %p", $self->o);
 	}
 	/* Insert before/after wrapper */
Index: extensions/dbg_interactive/messages.i
===================================================================
--- extensions/dbg_interactive/messages.i	(revision 740)
+++ extensions/dbg_interactive/messages.i	(revision 979)
@@ -51,5 +51,5 @@
 	
 	if (!l) {
-		fd_log_debug("Internal error! Python callback disappeared...\n");
+		fd_log_debug("Internal error! Python callback disappeared...");
 		return;
 	}
@@ -72,5 +72,5 @@
 		/* The callback is supposed to return a message or NULL */
 		if (!SWIG_IsOK(SWIG_ConvertPtr(result, (void *)msg, SWIGTYPE_p_msg, SWIG_POINTER_DISOWN))) {
-			fd_log_debug("Error: Cannot convert the return value to message.\n");
+			fd_log_debug("Error: Cannot convert the return value to message.");
 			*msg = NULL;
 		}
Index: extensions/dbg_interactive/peers.i
===================================================================
--- extensions/dbg_interactive/peers.i	(revision 740)
+++ extensions/dbg_interactive/peers.i	(revision 979)
@@ -45,5 +45,5 @@
 	
 	if (!data) {
-		TRACE_DEBUG(INFO, "Internal error: missing callback\n");
+		TRACE_DEBUG(INFO, "Internal error: missing callback");
 		return;
 	}
@@ -119,5 +119,5 @@
 	
 	if (!validate_cb2_py) {
-		fd_log_debug("Internal error: missing the callback2!\n");
+		fd_log_debug("Internal error: missing the callback2!");
 		return ENOTSUP;
 	}
@@ -132,5 +132,5 @@
 	/* The result is an integer */
 	if ((result == NULL) || !SWIG_IsOK(SWIG_AsVal_int(result, &ret))) {
-		fd_log_debug("Error: The Python callback did not return an integer.\n");
+		fd_log_debug("Error: The Python callback did not return an integer.");
 		ret = EINVAL;
 		goto out;
@@ -150,5 +150,5 @@
 	
 	if (!validate_cb_py) {
-		fd_log_debug("Internal error: missing the callback!\n");
+		fd_log_debug("Internal error: missing the callback!");
 		return ENOTSUP;
 	}
@@ -163,5 +163,5 @@
 	/* The result is supposedly -1, 1, or a cb2 */
 	if (result == NULL) {
-		fd_log_debug("Error: The Python callback did not return a value.\n");
+		fd_log_debug("Error: The Python callback did not return a value.");
 		ret = EINVAL;
 		goto out;
@@ -171,5 +171,5 @@
 		if (cb2) {
 			if (validate_cb2_py && (validate_cb2_py != result)) {
-				fd_log_debug("Only 1 register callback2 is supported currently\n");
+				fd_log_debug("Only 1 register callback2 is supported currently");
 				ret = ENOTSUP;
 				goto out;
@@ -185,5 +185,5 @@
 	} else { /* In this case, the return value must be -1, 0, or 1 */
 		if (!SWIG_IsOK(SWIG_AsVal_int(result, auth))) {
-			fd_log_debug("Error: Cannot convert the return value to integer.\n");
+			fd_log_debug("Error: Cannot convert the return value to integer.");
 			ret = EINVAL;
 			goto out;
Index: extensions/dbg_interactive/routing.i
===================================================================
--- extensions/dbg_interactive/routing.i	(revision 740)
+++ extensions/dbg_interactive/routing.i	(revision 979)
@@ -83,8 +83,8 @@
 %extend rtd_candidate {
 	void dump() {
-		fd_log_debug("candidate %p\n", $self);
-		fd_log_debug("  id : %s\n",  $self->diamid);
-		fd_log_debug("  rlm: %s\n", $self->realm);
-		fd_log_debug("  sc : %d\n", $self->score);
+		fd_log_debug("candidate %p", $self);
+		fd_log_debug("  id : %s",  $self->diamid);
+		fd_log_debug("  rlm: %s", $self->realm);
+		fd_log_debug("  sc : %d", $self->score);
 	}
 }
@@ -99,5 +99,5 @@
 	
 	if (!pycb) {
-		fd_log_debug("Internal error: missing the callback!\n");
+		fd_log_debug("Internal error: missing the callback!");
 		return ENOTSUP;
 	}
@@ -113,5 +113,5 @@
 	/* The result is supposedly composed of: [ ret, *msg ] */
 	if ((result == NULL) || (!PyList_Check(result)) || (PyList_Size(result) != 2)) {
-		fd_log_debug("Error: The Python callback did not return [ ret, msg ].\n");
+		fd_log_debug("Error: The Python callback did not return [ ret, msg ].");
 		ret = EINVAL;
 		goto out;
@@ -120,15 +120,15 @@
 	/* Convert the return values */
 	if (!SWIG_IsOK(SWIG_AsVal_int(PyList_GetItem(result, 0), &ret))) {
-		fd_log_debug("Error: Cannot convert the first return value to integer.\n");
+		fd_log_debug("Error: Cannot convert the first return value to integer.");
 		ret = EINVAL;
 		goto out;
 	}
 	if (ret) {
-		TRACE_DEBUG(INFO, "The Python callback returned the error code %d (%s)\n", ret, strerror(ret));
+		TRACE_DEBUG(INFO, "The Python callback returned the error code %d (%s)", ret, strerror(ret));
 		goto out;
 	}
 	
 	if (!SWIG_IsOK(SWIG_ConvertPtr(PyList_GetItem(result, 1), (void *)msg, SWIGTYPE_p_msg, SWIG_POINTER_DISOWN))) {
-		fd_log_debug("Error: Cannot convert the second return value to message.\n");
+		fd_log_debug("Error: Cannot convert the second return value to message.");
 		ret = EINVAL;
 		goto out;
@@ -183,5 +183,5 @@
 	
 	if (!pycb) {
-		fd_log_debug("Internal error: missing the callback!\n");
+		fd_log_debug("Internal error: missing the callback!");
 		return ENOTSUP;
 	}
@@ -198,5 +198,5 @@
 	/* The result is supposedly composed of: [ ret, *msg ] */
 	if (result == NULL){
-		fd_log_debug("Error: The Python callback raised an exception.\n");
+		fd_log_debug("Error: The Python callback raised an exception.");
 		ret = EINVAL;
 		goto out;
@@ -205,5 +205,5 @@
 	/* Convert the return values */
 	if (!SWIG_IsOK(SWIG_AsVal_int(result, &ret))) {
-		fd_log_debug("Error: Cannot convert the return value to integer.\n");
+		fd_log_debug("Error: Cannot convert the return value to integer.");
 		ret = EINVAL;
 		goto out;
Index: extensions/dbg_interactive/sessions.i
===================================================================
--- extensions/dbg_interactive/sessions.i	(revision 740)
+++ extensions/dbg_interactive/sessions.i	(revision 979)
@@ -43,5 +43,5 @@
 	PyObject *result;
 	if (!cb) {
-		fd_log_debug("Internal error: missing callback object!\n");
+		fd_log_debug("Internal error: missing callback object!");
 		return;
 	}
@@ -128,7 +128,7 @@
 		#if 0
 		if (n) {
-			fd_log_debug("A new session has been created\n");
+			fd_log_debug("A new session has been created");
 		} else {
-			fd_log_debug("A session with same id already existed\n");
+			fd_log_debug("A session with same id already existed");
 		}
 		#endif /* 0 */
