Index: extensions/_sample/sample.c
===================================================================
--- extensions/_sample/sample.c	(revision 974)
+++ extensions/_sample/sample.c	(revision 1088)
@@ -85,5 +85,4 @@
 		CHECK_FCT( fd_dict_new ( fd_g_config->cnf_dict, DICT_RULE, &rule_data, example_avp_avp, NULL ));
 		
-		fd_dict_dump_object(example_avp_avp);
 	}
 	TRACE_DEBUG(INFO, "'Example-AVP' created without error");
Index: extensions/app_diameap/diameap_server.c
===================================================================
--- extensions/app_diameap/diameap_server.c	(revision 1027)
+++ extensions/app_diameap/diameap_server.c	(revision 1088)
@@ -85,9 +85,7 @@
 
 
-void diameap_cli_sess_cleanup(void * arg, char * sid, void * opaque)
-{
-
-	struct diameap_sess_data_sm * diameap_sess_data =
-			(struct diameap_sess_data_sm *) arg;
+void diameap_cli_sess_cleanup(struct sess_state * diameap_sess_data, os0_t sid, void * opaque)
+{
+
 	CHECK_PARAMS_DO( diameap_sess_data, return );
 
@@ -141,5 +139,5 @@
 static int diameap_initialize_diameap_sm(
 		struct diameap_state_machine * diameap_sm,
-		struct diameap_sess_data_sm * diameap_sess_data)
+		struct sess_state * diameap_sess_data)
 {
 	TRACE_ENTRY("%p %p", diameap_sm, diameap_sess_data);
@@ -1017,5 +1015,5 @@
 
 static int diameap_sess_data_new(
-		struct diameap_sess_data_sm *diameap_sess_data,
+		struct sess_state *diameap_sess_data,
 		struct diameap_state_machine *diameap_sm)
 {
@@ -3064,5 +3062,5 @@
 	TRACE_ENTRY("%p %p %p %p", rmsg, ravp, sess, action);
 
-	struct diameap_sess_data_sm * diameap_sess_data = NULL;
+	struct sess_state * diameap_sess_data = NULL;
 	struct diameap_state_machine * diameap_sm = NULL;
 	struct diameap_eap_interface eap_i;
@@ -3258,7 +3256,7 @@
 			TRACE_DEBUG(FULL+1,"%sStoring DiamEAP session data.",DIAMEAP_EXTENSION)
 			;
-			CHECK_MALLOC(diameap_sess_data = malloc(sizeof(struct diameap_sess_data_sm)))
-			;
-			memset(diameap_sess_data, 0, sizeof(struct diameap_sess_data_sm));
+			CHECK_MALLOC(diameap_sess_data = malloc(sizeof(struct sess_state)))
+			;
+			memset(diameap_sess_data, 0, sizeof(struct sess_state));
 			diameap_sess_data_new(diameap_sess_data, diameap_sm);
 
@@ -3389,5 +3387,5 @@
 
 	/*create handler for sessions */
-	CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL));
+	CHECK_FCT(fd_sess_handler_create(&diameap_server_reg, diameap_cli_sess_cleanup, NULL, NULL));
 
 	/* Register the callback */
Index: extensions/app_diameap/diameap_server.h
===================================================================
--- extensions/app_diameap/diameap_server.h	(revision 441)
+++ extensions/app_diameap/diameap_server.h	(revision 1088)
@@ -40,7 +40,7 @@
 #define DIAMEAP_SERVER_H_
 
-
+ 
 /* session data structure to store */
-struct diameap_sess_data_sm
+struct sess_state
 {
 	int invalid_eappackets; /* Number of invalid EAP Packet received*/
Index: extensions/app_radgw/rgwx_acct.c
===================================================================
--- extensions/app_radgw/rgwx_acct.c	(revision 1027)
+++ extensions/app_radgw/rgwx_acct.c	(revision 1088)
@@ -160,4 +160,9 @@
 };
 
+static DECLARE_FD_DUMP_PROTOTYPE(acct_conf_session_state_dump, struct sess_state * st)
+{
+	return fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state](@%p): aai:%x str:%d TC:%u", st, st->auth_appl, st->send_str, st->term_cause);
+}
+
 /* Initialize the plugin */
 static int acct_conf_parse(char * conffile, struct rgwp_config ** state)
@@ -172,5 +177,5 @@
 	memset(new, 0, sizeof(struct rgwp_config));
 	
-	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );
+	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, (void *)free, acct_conf_session_state_dump, NULL ) );
 	new->confstr = conffile;
 	
Index: extensions/app_radgw/rgwx_auth.c
===================================================================
--- extensions/app_radgw/rgwx_auth.c	(revision 1027)
+++ extensions/app_radgw/rgwx_auth.c	(revision 1088)
@@ -125,4 +125,9 @@
 };
 
+struct sess_state {
+	char req_auth[16];
+};
+
+
 /* Initialize the plugin */
 static int auth_conf_parse(char * confstr, struct rgwp_config ** state)
@@ -137,5 +142,5 @@
 	memset(new, 0, sizeof(struct rgwp_config));
 	
-	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );
+	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, (void *)free, NULL, NULL ) );
 	new->confstr = confstr;
 	
@@ -1057,9 +1062,9 @@
 	/* Store the request identifier in the session (if provided) */
 	{
-		unsigned char * req_auth;
-		CHECK_MALLOC(req_auth = malloc(16));
-		memcpy(req_auth, &rad_req->hdr->authenticator[0], 16);
+		struct sess_state  *st;
+		CHECK_MALLOC(st = malloc(sizeof(struct sess_state)));
+		memcpy(st->req_auth, &rad_req->hdr->authenticator[0], 16);
 		
-		CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &req_auth ) );
+		CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &st ) );
 	}
 	
@@ -1077,5 +1082,5 @@
 	int no_str = 0; /* indicate if an STR is required for this server */
 	uint8_t	tuntag = 0;
-	unsigned char * req_auth = NULL;
+	struct sess_state  *st;
 	int error_cause = 0;
 	struct session * sess;
@@ -1089,5 +1094,5 @@
 	CHECK_FCT( fd_msg_sess_get(fd_g_config->cnf_dict, *diam_ans, &sess, NULL) );
 	if (sess) {
-		CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &req_auth ) );
+		CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &st ) );
 		CHECK_FCT( fd_sess_getsid(sess, &sid, &sidlen) );
 	} /* else ? */
@@ -1759,5 +1764,5 @@
 											
 											/* We need the request authenticator */
-											CHECK_PARAMS(req_auth);
+											CHECK_PARAMS(st);
 
 											/* Retrieve the shared secret */
@@ -1778,5 +1783,5 @@
 											addr[0] = secret;
 											len[0] = secret_len;
-											addr[1] = req_auth;
+											addr[1] = st->req_auth;
 											len[1] = 16;
 											addr[2] = &buf[1];
@@ -1853,5 +1858,5 @@
 
 						/* We need the request authenticator */
-						CHECK_PARAMS(req_auth);
+						CHECK_PARAMS(st);
 
 						/* Retrieve the shared secret */
@@ -1866,5 +1871,5 @@
 						send_len = ahdr->avp_value->os.len - recv_len;
 						
-						if ( ! radius_msg_add_mppe_keys(*rad_fw, req_auth, secret, secret_len, 
+						if ( ! radius_msg_add_mppe_keys(*rad_fw, st->req_auth, secret, secret_len, 
 								ahdr->avp_value->os.data + recv_len, send_len,
 								ahdr->avp_value->os.data, recv_len) ) {
@@ -1925,5 +1930,5 @@
 	
 	CHECK_FCT( fd_msg_free( aoh ) );
-	free(req_auth);
+	free(st);
 	
 	if (error_cause) {
Index: extensions/app_radgw/rgwx_echodrop.c
===================================================================
--- extensions/app_radgw/rgwx_echodrop.c	(revision 996)
+++ extensions/app_radgw/rgwx_echodrop.c	(revision 1088)
@@ -38,18 +38,29 @@
 #include "rgwx_echodrop.h"
 
+struct sess_state {
+	struct fd_list sentinel;
+};
+
 /* If a session is destroyed, empty the list of ed_saved_attribute */
-static void state_delete(void * arg, char * sid, void * opaque) {
-	struct fd_list * list = (struct fd_list *)arg;
-	
-	CHECK_PARAMS_DO( list, return );
-	
-	while (!FD_IS_LIST_EMPTY(list)) {
-		struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(list->next);
+static void state_delete(struct sess_state * arg, os0_t sid, void * opaque) {
+	while (!FD_IS_LIST_EMPTY(&arg->sentinel)) {
+		struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(arg->sentinel.next);
 		fd_list_unlink(&esa->chain);
 		free(esa);
 	}
-	free(list);
-}
-
+	free(arg);
+}
+
+static DECLARE_FD_DUMP_PROTOTYPE(ed_session_state_dump, struct sess_state * st)
+{
+	struct fd_list * li;
+	CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state](@%p):\n", st), return NULL);	
+	for (li = st->sentinel.next; li != &st->sentinel; li = li->next) {
+		struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(li);
+		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "[rgwx sess_state {esa}] t:%2hhx l:%2hhx d:", esa->attr.type, esa->attr.length), return NULL);
+		CHECK_MALLOC_DO( fd_dump_extend_hexdump(FD_DUMP_STD_PARAMS, (&esa->attr.length) + 1, esa->attr.length - 2, 0,0), return NULL);
+		CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "\n"), return NULL);
+	}
+}
 
 /* Initialize the plugin and parse the configuration. */
@@ -69,5 +80,5 @@
 	
 	/* Create the session handler */
-	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete, NULL ) );
+	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, state_delete, ed_session_state_dump, NULL ) );
 	
 	/* Parse the configuration file */
@@ -217,4 +228,5 @@
 	if (!FD_IS_LIST_EMPTY(&echo_list)) {
 		struct session * sess;
+		struct sess_state * st;
 		
 		CHECK_FCT( fd_msg_sess_get(fd_g_config->cnf_dict, *diam_fw, &sess, NULL) );
@@ -229,10 +241,10 @@
 		
 		/* Move the values in a dynamically allocated list */
-		CHECK_MALLOC( li = malloc(sizeof(struct fd_list)) );
-		fd_list_init(li, NULL);
-		fd_list_move_end(li, &echo_list);
+		CHECK_MALLOC( st = malloc(sizeof(struct sess_state)) );
+		fd_list_init(&st->sentinel, NULL);
+		fd_list_move_end(&st->sentinel, &echo_list);
 		
 		/* Save the list in the session */
-		CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &li ) );
+		CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &st ) );
 	}
 	
@@ -243,6 +255,6 @@
 static int ed_diam_ans( struct rgwp_config * cs, struct msg ** diam_ans, struct radius_msg ** rad_fw, struct rgw_client * cli )
 {
-	struct fd_list * list = NULL;
 	struct session * sess;
+	struct sess_state * st;
 	
 	TRACE_ENTRY("%p %p %p %p", cs, diam_ans, rad_fw, cli);
@@ -258,6 +270,6 @@
 	
 	/* Now try and retrieve any data from the session */
-	CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &list ) );
-	if (list == NULL) {
+	CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &st ) );
+	if (st == NULL) {
 		/* No attribute saved in the session, just return */
 		return 0;
@@ -268,6 +280,6 @@
 	CHECK_PARAMS( rad_fw && *rad_fw);
 	
-	while (! FD_IS_LIST_EMPTY(list) ) {
-		struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(list->next);
+	while (! FD_IS_LIST_EMPTY(&st->sentinel) ) {
+		struct ed_saved_attribute * esa = (struct ed_saved_attribute *)(st->sentinel.next);
 		
 		fd_list_unlink(&esa->chain);
@@ -280,5 +292,5 @@
 		free(esa);
 	}
-	free(list);
+	free(st);
 
 	return 0;
Index: extensions/app_radgw/rgwx_sip.c
===================================================================
--- extensions/app_radgw/rgwx_sip.c	(revision 1027)
+++ extensions/app_radgw/rgwx_sip.c	(revision 1088)
@@ -134,5 +134,4 @@
 		
 	} dict; /* cache of the dictionary objects we use */
-	struct session_handler * sess_hdl; /* We store RADIUS request authenticator information in the session */
 	char * confstr;
 	//Chained list of nonce
@@ -258,5 +257,4 @@
 	memset(new, 0, sizeof(struct rgwp_config));
 	
-	CHECK_FCT( fd_sess_handler_create( &new->sess_hdl, free, NULL ) );
 	new->confstr = conffile;
 	
@@ -312,6 +310,4 @@
 	CHECK_PARAMS_DO( state, return );
 	
-	CHECK_FCT_DO( fd_sess_handler_destroy( &state->sess_hdl, NULL ),  );
-	
 	nonce_deletelistnonce(state);
 	CHECK_POSIX_DO(pthread_mutex_destroy(&state->nonce_mutex), /*continue*/);
@@ -320,5 +316,4 @@
 	return;
 }
-
 
 /* Handle an incoming RADIUS request */
@@ -717,13 +712,4 @@
 	//fd_msg_dump_walk(1,*diam_fw);
 	
-	/* Store the request identifier in the session */
-	{
-		unsigned char * req_sip;
-		CHECK_MALLOC(req_sip = malloc(16));
-		memcpy(req_sip, &rad_req->hdr->authenticator[0], 16);
-		
-		CHECK_FCT( fd_sess_state_store( cs->sess_hdl, sess, &req_sip ) );
-	}
-	
 	
 	return 0;
@@ -857,7 +843,4 @@
 	}
 	
-	CHECK_FCT( fd_sess_state_retrieve( cs->sess_hdl, sess, &req_sip ) );
-	free(req_sip);
-	
 	return 0;
 }
Index: extensions/app_sip/app_sip.c
===================================================================
--- extensions/app_sip/app_sip.c	(revision 1027)
+++ extensions/app_sip/app_sip.c	(revision 1088)
@@ -50,5 +50,4 @@
 
 struct disp_hdl * app_sip_default_hdl=NULL;
-struct session_handler * ds_sess_hdl;
 
 //configuration stucture
@@ -213,6 +212,4 @@
 		return EINVAL;
 	
-	CHECK_FCT(fd_sess_handler_create(&ds_sess_hdl, free, NULL));
-	
 	//Creation of thread for Registration Termination	
 	if(pthread_create(&rtr_thread, NULL,rtr_socket, NULL))
@@ -238,5 +235,4 @@
 	
 	(void) fd_disp_unregister(&app_sip_MAR_hdl, NULL);
-	CHECK_FCT_DO( fd_sess_handler_destroy(&ds_sess_hdl, NULL),return);
 	
 	
Index: extensions/app_sip/app_sip.h
===================================================================
--- extensions/app_sip/app_sip.h	(revision 1034)
+++ extensions/app_sip/app_sip.h	(revision 1088)
@@ -212,9 +212,4 @@
 #define CODE_SIP_USER_DATA_TYPE	388
 #define CODE_SIP_AOR	122
-
-struct ds_nonce
-{
-	char *nonce;
-};
 
 //Storage for some useful AVPs
Index: extensions/app_sip/multimediaauth.c
===================================================================
--- extensions/app_sip/multimediaauth.c	(revision 639)
+++ extensions/app_sip/multimediaauth.c	(revision 1088)
@@ -36,4 +36,9 @@
 #include "app_sip.h"
 
+struct sess_state
+{
+	char *nonce;
+};
+
 
 int app_sip_MAR_cb( struct msg ** msg, struct avp * paramavp, struct session * sess, void * opaque, enum disp_action * act)
@@ -56,5 +61,5 @@
 	
 	//The nonce we will store and retrieve in session
-	struct ds_nonce *storednonce=NULL;
+	struct sess_state *storednonce=NULL;
 	
 	
@@ -362,6 +367,6 @@
 									
 									//We store the nonce (storednonce structure) inside the session
-									storednonce=malloc(sizeof(struct ds_nonce));
-									memset(storednonce,0,sizeof(struct ds_nonce));
+									storednonce=malloc(sizeof(struct sess_state));
+									memset(storednonce,0,sizeof(struct sess_state));
 									CHECK_MALLOC(storednonce->nonce=malloc(NONCE_SIZE*2+1));
 									memcpy(storednonce->nonce,(char *)nonce,NONCE_SIZE*2+1);
Index: extensions/dbg_interactive/dictionary.i
===================================================================
--- extensions/dbg_interactive/dictionary.i	(revision 979)
+++ extensions/dbg_interactive/dictionary.i	(revision 1088)
@@ -60,5 +60,8 @@
 	}
 	void dump() {
-		fd_dict_dump($self);
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_dict_dump(&buf, &len, NULL, $self));
+		free(buf);
 	}
 	PyObject * vendors_list() {
@@ -128,5 +131,8 @@
 %extend dict_object {
 	void dump() {
-		fd_dict_dump_object($self);
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_dict_dump_object(&buf, &len, NULL, $self));
+		free(buf);
 	}
 	enum dict_object_type gettype() {
Index: extensions/dbg_interactive/endpoints.i
===================================================================
--- extensions/dbg_interactive/endpoints.i	(revision 978)
+++ extensions/dbg_interactive/endpoints.i	(revision 1088)
@@ -126,5 +126,8 @@
 	
 	void dump() {
-		fd_ep_dump_one( "", $self );
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_ep_dump_one(&buf, &len, NULL, $self));
+		free(buf);
 	}
 }
Index: extensions/dbg_interactive/messages.i
===================================================================
--- extensions/dbg_interactive/messages.i	(revision 1078)
+++ extensions/dbg_interactive/messages.i	(revision 1088)
@@ -291,8 +291,8 @@
 	/* Dump */
 	void dump (int tree = 1) {
-		if (tree)
-			fd_msg_dump_walk(0, $self);
-		else
-			fd_msg_dump_one(0, $self);
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_msg_dump_treeview(&buf, &len, NULL, $self, NULL, 0, tree));
+		free(buf);
 	}
 	
@@ -570,8 +570,8 @@
 	/* Dump */
 	void dump (int tree = 1) {
-		if (tree)
-			fd_msg_dump_walk(0, $self);
-		else
-			fd_msg_dump_one(0, $self);
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_msg_dump_treeview(&buf, &len, NULL, $self, NULL, 0, tree));
+		free(buf);
 	}
 	
Index: extensions/dbg_interactive/sessions.i
===================================================================
--- extensions/dbg_interactive/sessions.i	(revision 1013)
+++ extensions/dbg_interactive/sessions.i	(revision 1088)
@@ -39,6 +39,10 @@
 
 %{
+struct sess_state {
+	PyObject * pystate;
+};
+
 /* call it (might be called from a different thread than the interpreter, when session times out) */
-static void call_the_python_cleanup_callback(session_state * state, os0_t sid, void * cb) {
+static void call_the_python_cleanup_callback(struct sess_state * state, os0_t sid, void * cb) {
 	PyObject *result;
 	if (!cb) {
@@ -67,5 +71,5 @@
 		Py_XINCREF(PyCb);
 		
-		ret = fd_sess_handler_create_internal ( &hdl, call_the_python_cleanup_callback, PyCb );
+		ret = fd_sess_handler_create ( &hdl, call_the_python_cleanup_callback, NULL, PyCb );
 		if (ret != 0) {
 			DI_ERROR(ret, NULL, NULL);
@@ -87,5 +91,8 @@
 	}
 	void dump() {
-		fd_sess_dump_hdl(0, $self);
+		char * buf = NULL;
+		size_t len;
+		printf("%s", fd_sess_dump_hdl(&buf, &len, NULL, $self));
+		free(buf);
 	}
 }
@@ -166,11 +173,16 @@
 	}
 	void dump() {
-		fd_sess_dump(0, $self);
+		char * buf = NULL;
+		size_t len = 0;
+		printf("%s", fd_sess_dump(&buf, &len, NULL, $self, 1) );
+		free(buf);
 	}
 	void store(struct session_handler * handler, PyObject * DISOWN) {
 		int ret;
-		void * store = DISOWN;
+		struct sess_state * st = NULL;
+		st = malloc(sizeof(struct sess_state));
+		st->pystate = DISOWN;
 		Py_XINCREF(DISOWN);
-		ret = fd_sess_state_store_internal(handler, $self, (void *) &store);
+		ret = fd_sess_state_store(handler, $self, (void *) &st);
 		if (ret != 0) {
 			DI_ERROR(ret, NULL, NULL);
@@ -180,14 +192,17 @@
 	PyObject * retrieve(struct session_handler * handler) {
 		int ret;
+		struct sess_state * st = NULL;
 		PyObject * state = NULL;
-		ret = fd_sess_state_retrieve_internal(handler, $self, (void *) &state);
-		if (ret != 0) {
-			DI_ERROR(ret, NULL, NULL);
-			return NULL;
-		}
-		if (state == NULL) {
+		ret = fd_sess_state_retrieve_internal(handler, $self, (void *) &st);
+		if (ret != 0) {
+			DI_ERROR(ret, NULL, NULL);
+			return NULL;
+		}
+		if (st == NULL) {
 			Py_INCREF(Py_None);
 			return Py_None;
 		}
+		state = st->pystate;
+		free(st);
 		return state;
 	}
Index: extensions/dbg_monitor/dbg_monitor.c
===================================================================
--- extensions/dbg_monitor/dbg_monitor.c	(revision 1083)
+++ extensions/dbg_monitor/dbg_monitor.c	(revision 1088)
@@ -78,4 +78,6 @@
 	int i = 0;
 	fd_log_threadname("Monitor thread");
+	char * buf = NULL;
+	size_t len;
 	
 	/* Loop */
@@ -111,5 +113,5 @@
 			struct peer_hdr * p = (struct peer_hdr *)li->o;
 			
-			fd_peer_dump(p, NONE);
+			TRACE_DEBUG(INFO, "%s", fd_peer_dump(&buf, &len, NULL, p, 1));
 			
 			CHECK_FCT_DO( fd_stat_getstats(STAT_P_PSM, p, &current_count, &limit_count, &highest_count, &total_count, &total, &blocking, &last), );
@@ -123,8 +125,11 @@
 		CHECK_FCT_DO( pthread_rwlock_unlock(&fd_g_peers_rw), /* continue */ );
 		
-		CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_SERV, 0, NULL), /* continue */);
+		TRACE_DEBUG(INFO, "[dbg_monitor] Dumping servers information");
+		TRACE_DEBUG(INFO, "%s", fd_servers_dump(&buf, &len, NULL));
+		
 		sleep(1);
 	}
 	
+	free(buf);
 	return NULL;
 }
@@ -133,8 +138,13 @@
 static void got_sig()
 {
-	fd_log_debug("[dbg_monitor] Dumping extra information");
-	CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_DICT, 0, NULL), /* continue */);
-	CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_CONFIG, 0, NULL), /* continue */);
-	CHECK_FCT_DO(fd_event_send(fd_g_config->cnf_main_ev, FDEV_DUMP_EXT, 0, NULL), /* continue */);
+	char * buf = NULL;
+	size_t len;
+	TRACE_DEBUG(INFO, "[dbg_monitor] Dumping config information");
+	TRACE_DEBUG(INFO, "%s", fd_conf_dump(&buf, &len, NULL));
+	TRACE_DEBUG(INFO, "[dbg_monitor] Dumping extensions information");
+	TRACE_DEBUG(INFO, "%s", fd_ext_dump(&buf, &len, NULL));
+	TRACE_DEBUG(INFO, "[dbg_monitor] Dumping dictionary information");
+	TRACE_DEBUG(INFO, "%s", fd_dict_dump(&buf, &len, NULL, fd_g_config->cnf_dict));
+	free(buf);
 }
 
Index: extensions/dict_legacy_xml/dict_lxml_xml.c
===================================================================
--- extensions/dict_legacy_xml/dict_lxml_xml.c	(revision 974)
+++ extensions/dict_legacy_xml/dict_lxml_xml.c	(revision 1088)
@@ -1809,7 +1809,4 @@
 	
 	TRACE_DEBUG(FULL, "Conversion from '%s' to freeDiameter internal format complete.", xmlfilename);
-	if (TRACE_BOOL(ANNOYING)) {
-		fd_dict_dump(fd_g_config->cnf_dict);
-	}
 	
 	/* Done */
Index: extensions/test_app/ta_cli.c
===================================================================
--- extensions/test_app/ta_cli.c	(revision 930)
+++ extensions/test_app/ta_cli.c	(revision 1088)
@@ -46,5 +46,5 @@
 static struct session_handler * ta_cli_reg = NULL;
 
-struct ta_mess_info {
+struct sess_state {
 	int32_t		randval;	/* a random value to store in Test-AVP */
 	struct timespec ts;		/* Time of sending the message */
@@ -54,5 +54,5 @@
 static void ta_cb_ans(void * data, struct msg ** msg)
 {
-	struct ta_mess_info * mi = NULL;
+	struct sess_state * mi = NULL;
 	struct timespec ts;
 	struct session * sess;
@@ -177,5 +177,5 @@
 	struct avp * avp;
 	union avp_value val;
-	struct ta_mess_info * mi = NULL, *svg;
+	struct sess_state * mi = NULL, *svg;
 	struct session *sess = NULL;
 	
@@ -191,5 +191,5 @@
 	
 	/* Create the random value to store with the session */
-	mi = malloc(sizeof(struct ta_mess_info));
+	mi = malloc(sizeof(struct sess_state));
 	if (mi == NULL) {
 		fd_log_debug("malloc failed: %s", strerror(errno));
@@ -265,5 +265,5 @@
 int ta_cli_init(void)
 {
-	CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, free, NULL) );
+	CHECK_FCT( fd_sess_handler_create(&ta_cli_reg, (void *)free, NULL, NULL) );
 	
 	CHECK_FCT( fd_event_trig_regcb(ta_conf->signal, "test_app.cli", ta_cli_test_message ) );
Index: extensions/test_sip/test_sip.c
===================================================================
--- extensions/test_sip/test_sip.c	(revision 972)
+++ extensions/test_sip/test_sip.c	(revision 1088)
@@ -54,5 +54,4 @@
 
 struct disp_hdl * test_sip_default_hdl=NULL;
-struct session_handler * ts_sess_hdl;
 
 //configuration stucture
@@ -214,5 +213,4 @@
 	*/
 	
-	CHECK_FCT(fd_sess_handler_create(&ts_sess_hdl, free, NULL));
 	//CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sipSL_LIR_cb ) );
 	CHECK_FCT( fd_event_trig_regcb(30, "test_sip", (void *)test_sip_SAR_cb ) );
