Index: libfdcore/core.c
===================================================================
--- libfdcore/core.c	(revision 1119)
+++ libfdcore/core.c	(revision 1120)
@@ -257,4 +257,8 @@
 	LOG_N("%s", b ?: "Error during configuration dump...");
 	
+	/* Display extensions status */
+	b = fd_ext_dump(&buf, &len, NULL, 19);
+	LOG_N("Loaded extensions: %s", b ?: "Error during extensions dump...");
+	
 	/* Display registered triggers for FDEV_TRIGGER */
 	b = fd_event_trig_dump(&buf, &len, &offset);
Index: libfdcore/extensions.c
===================================================================
--- libfdcore/extensions.c	(revision 1113)
+++ libfdcore/extensions.c	(revision 1120)
@@ -78,5 +78,5 @@
 
 /* Dump the list */
-DECLARE_FD_DUMP_PROTOTYPE(fd_ext_dump)
+DECLARE_FD_DUMP_PROTOTYPE(fd_ext_dump, int indent_next)
 {
 	struct fd_list * li;
@@ -86,5 +86,8 @@
 	{
 		struct fd_ext_info * ext = (struct fd_ext_info *)li;
-		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{extension}(@%p): '%s'[%s], %sloaded%s", ext, ext->filename, ext->conffile?:"no conf", ext->handler ? "" : "not ", (li->next == &ext_list) ? "":"\n"), return NULL);
+		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%*s'%s'[%s], %sloaded%s", (li == ext_list.next) ? 0 : indent_next,"", 
+					ext->filename, 
+					ext->conffile?:"no conf", 
+					ext->handler ? "" : "not ", (li->next == &ext_list) ? "":"\n"), return NULL);
 	}
 	return *buf;
Index: libfdcore/hooks.c
===================================================================
--- libfdcore/hooks.c	(revision 1103)
+++ libfdcore/hooks.c	(revision 1120)
@@ -333,6 +333,5 @@
 				if (msg) {
 					DiamId_t id = NULL;
-					size_t idlen;
-					if (!fd_msg_source_get( msg, &id, &idlen ))
+					if (!fd_msg_source_get( msg, &id, NULL ))
 						id = (DiamId_t)"<error getting source>";
 					
@@ -353,6 +352,5 @@
 			case HOOK_MESSAGE_ROUTING_ERROR: {
 				DiamId_t id = NULL;
-				size_t idlen;
-				if (!fd_msg_source_get( msg, &id, &idlen ))
+				if (!fd_msg_source_get( msg, &id, NULL ))
 					id = (DiamId_t)"<error getting source>";
 
@@ -397,4 +395,8 @@
 			
 			case HOOK_PEER_CONNECT_SUCCESS: {
+				DiamId_t id = NULL;
+				if ((!fd_msg_source_get( msg, &id, NULL )) && (id == NULL)) { /* The CEA is locally issued */
+					fd_msg_answ_getq(msg, &msg); /* We dump the CER in that case */
+				}
 				CHECK_MALLOC_DO(fd_msg_dump_treeview(&buf, &len, NULL, msg, NULL, 0, 1), break);
 				LOG_N("Connected to '%s', remote capabilities: %s", peer ? peer->p_hdr.info.pi_diamid : "<unknown>", buf);
Index: libfdcore/messages.c
===================================================================
--- libfdcore/messages.c	(revision 1113)
+++ libfdcore/messages.c	(revision 1120)
@@ -318,5 +318,4 @@
 	struct msg_hdr *hdr;
 	DiamId_t diamid;
-	size_t diamidlen;
 	
 	/* Save the callback in the message, with the timeout */
@@ -326,5 +325,5 @@
 	if ( (fd_msg_hdr(*pmsg, &hdr) == 0)
 	 &&  (hdr->msg_flags & CMD_FLAG_REQUEST)
-	 &&  (fd_msg_source_get(*pmsg, &diamid, &diamidlen) == 0)
+	 &&  (fd_msg_source_get(*pmsg, &diamid, NULL) == 0)
 	 &&  (diamid == NULL)) {
 		fd_hook_call(HOOK_MESSAGE_LOCAL, *pmsg, NULL, NULL, fd_msg_pmdl_get(*pmsg));
Index: libfdcore/p_psm.c
===================================================================
--- libfdcore/p_psm.c	(revision 1118)
+++ libfdcore/p_psm.c	(revision 1120)
@@ -282,5 +282,5 @@
 		return 0;
 	
-	TRACE_DEBUG(((old == STATE_OPEN) || (new_state == STATE_OPEN)) ? INFO : FULL, "'%s'\t-> '%s'\t'%s'",
+	LOG(((old == STATE_OPEN) || (new_state == STATE_OPEN)) ? FD_LOG_NOTICE : FD_LOG_DEBUG, "'%s'\t-> '%s'\t'%s'",
 			STATE_STR(old),
 			STATE_STR(new_state),
@@ -500,4 +500,5 @@
 			
 		fd_hook_associate(msg, pmdl);
+		CHECK_FCT_DO( fd_msg_source_set( msg, peer->p_hdr.info.pi_diamid, peer->p_hdr.info.pi_diamidlen), goto psm_end);
 	
 		/* If the current state does not allow receiving messages, just drop it */
@@ -557,5 +558,5 @@
 
 					/* Set the message source and add the Route-Record */
-					CHECK_FCT_DO( fd_msg_source_set( msg, peer->p_hdr.info.pi_diamid, peer->p_hdr.info.pi_diamidlen, 1, fd_g_config->cnf_dict ), goto psm_end);
+					CHECK_FCT_DO( fd_msg_source_setrr( msg, peer->p_hdr.info.pi_diamid, peer->p_hdr.info.pi_diamidlen, fd_g_config->cnf_dict ), goto psm_end);
 
 					/* Requeue to the global incoming queue */
@@ -742,5 +743,5 @@
 			char * buf = NULL;
 			size_t len = 0;
-			LOG_D("New remote endpoint(s): %s",  fd_ep_dump(&buf, &len, NULL, 0, 0, &peer->p_hdr.info.pi_endpoints) ?: "error");
+			LOG_D("Got low layer notification (IGNORED): remote endpoint(s) changed: %s",  fd_ep_dump(&buf, &len, NULL, 0, 0, &peer->p_hdr.info.pi_endpoints) ?: "error");
 			free(buf);
 		}
Index: libfdcore/routing_dispatch.c
===================================================================
--- libfdcore/routing_dispatch.c	(revision 1119)
+++ libfdcore/routing_dispatch.c	(revision 1120)
@@ -551,5 +551,4 @@
 	int is_err = 0;
 	DiamId_t qry_src = NULL;
-	size_t   qry_src_len = 0;
 	struct msg *msgptr = msg;
 
@@ -751,5 +750,5 @@
 		/* Retrieve the corresponding query and its origin */
 		CHECK_FCT( fd_msg_answ_getq( msgptr, &qry ) );
-		CHECK_FCT( fd_msg_source_get( qry, &qry_src, &qry_src_len ) );
+		CHECK_FCT( fd_msg_source_get( qry, &qry_src, NULL ) );
 
 		if ((!qry_src) && (!is_err)) {
