diff --git a/nlsr.c b/nlsr.c
index b3d38e9..9aca876 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -311,7 +311,8 @@
 	hashtb_end(e);
 
 	
-
+	hashtb_destroy(&nlsr->lsdb->adj_lsdb);
+	hashtb_destroy(&nlsr->lsdb->name_lsdb);
 	hashtb_destroy(&nlsr->adl);
 	hashtb_destroy(&nlsr->npl);
 	ccn_schedule_destroy(&nlsr->sched);
diff --git a/nlsr.h b/nlsr.h
index 11635fc..d0df282 100644
--- a/nlsr.h
+++ b/nlsr.h
@@ -15,7 +15,7 @@
 	struct name_prefix *neighbor;
 	int face;
 	int status;
-	char *last_lsdb_version;
+	long int last_lsdb_version;
 	struct hashtb *lsa_update_queue;
 };
 
diff --git a/nlsr_adl.c b/nlsr_adl.c
index 94ccb42..5f3e71c 100644
--- a/nlsr_adl.c
+++ b/nlsr_adl.c
@@ -42,13 +42,14 @@
 	hnbr->neighbor=(struct name_prefix *)malloc(sizeof(struct name_prefix *));
 	hnbr->neighbor->name=(char *)malloc(nbr->neighbor->length);
 	memcpy(hnbr->neighbor->name,nbr->neighbor->name,nbr->neighbor->length);
-	hnbr->last_lsdb_version=(char *)malloc(15);
+	//hnbr->last_lsdb_version=(char *)malloc(15);
 
 	hnbr->neighbor->length=nbr->neighbor->length;
 	hnbr->face=nbr->face;
 	hnbr->status=nbr->status;
-	memcpy(hnbr->last_lsdb_version,"00000000000000",14);
-	memcpy(hnbr->last_lsdb_version+strlen(hnbr->last_lsdb_version),"\0",1);
+	hnbr->last_lsdb_version=0;
+	//memcpy(hnbr->last_lsdb_version,"00000000000000",14);
+	//memcpy(hnbr->last_lsdb_version+strlen(hnbr->last_lsdb_version),"\0",1);
 
 	struct hashtb_param param_luq = {0};
 	hnbr->lsa_update_queue=hashtb_create(200, &param_luq);
@@ -76,7 +77,7 @@
 	for(i=0;i<adl_element;i++)
 	{
 		nbr=e->data;
-		printf("Neighbor: %s Length: %d Face: %d Status: %d LSDB Version: %s \n",nbr->neighbor->name,nbr->neighbor->length,nbr->face, nbr->status, nbr->last_lsdb_version);	
+		printf("Neighbor: %s Length: %d Face: %d Status: %d LSDB Version: %ld \n",nbr->neighbor->name,nbr->neighbor->length,nbr->face, nbr->status, nbr->last_lsdb_version);	
 		hashtb_next(e);		
 	}
 
@@ -109,7 +110,7 @@
 
 
 void 
-update_adjacent_lsdb_version_to_adl(struct ccn_charbuf *nbr, char *version)
+update_adjacent_lsdb_version_to_adl(struct ccn_charbuf *nbr, long int version)
 {
 	printf("update_adjacent_status_to_adl called \n");
 
@@ -125,7 +126,9 @@
 	assert( res == HT_OLD_ENTRY);
 
 	nnbr=e->data;
-	memcpy(nnbr->last_lsdb_version,version,strlen(version)+1);
+	nnbr->last_lsdb_version=version;
+	
+	//memcpy(nnbr->last_lsdb_version,version,strlen(version)+1);
 	
 	hashtb_end(e);
 }
diff --git a/nlsr_adl.h b/nlsr_adl.h
index 1803a14..cd25524 100644
--- a/nlsr_adl.h
+++ b/nlsr_adl.h
@@ -4,6 +4,6 @@
 void add_adjacent_to_adl(struct ndn_neighbor *nbr);
 void print_adjacent_from_adl(void);
 void update_adjacent_status_to_adl(struct ccn_charbuf *nbr, int status);
-void update_adjacent_lsdb_version_to_adl(struct ccn_charbuf *nbr, char *version);
+void update_adjacent_lsdb_version_to_adl(struct ccn_charbuf *nbr, long int version);
 
 #endif
diff --git a/nlsr_ndn.c b/nlsr_ndn.c
index ab43697..2d775ae 100644
--- a/nlsr_ndn.c
+++ b/nlsr_ndn.c
@@ -256,7 +256,6 @@
 	for(i=0;i<nlsr_position;i++)
 	{
 		res=ccn_name_comp_get(info->interest_ccnb, info->interest_comps,i,&comp_ptr1, &comp_size);
-		//printf("%s \n",comp_ptr1);
 		ccn_charbuf_append_string(nbr,"/");
 		ccn_charbuf_append_string(nbr,(const char *)comp_ptr1);	
 	}
@@ -430,12 +429,12 @@
 	for(i=0;i<adl_element;i++)
 	{
 		nbr=e->data;
-		printf("Sending interest for name prefix:%s/%s/%s/%s\n",nbr->neighbor->name,nlsr_str,lsdb_str,rnumstr);	
+		printf("Sending interest for name prefix:%s/%s/%s\n",nbr->neighbor->name,nlsr_str,lsdb_str);	
 		name=ccn_charbuf_create();
 		res=ccn_name_from_uri(name,nbr->neighbor->name);
 		ccn_name_append_str(name,nlsr_str);
 		ccn_name_append_str(name,lsdb_str);
-		ccn_name_append_str(name,rnumstr);
+		//ccn_name_append_str(name,rnumstr);
 
 		/* adding Exclusion filter */
 		
@@ -453,7 +452,8 @@
 		ccnb_tagged_putf(templ, CCN_DTAG_Any, "");
 		ccn_charbuf_reset(c);
 		//ccn_charbuf_putf(c, "%u", (unsigned)mynumber);
-		ccn_charbuf_putf(c, "%s", nbr->last_lsdb_version);
+		//ccn_charbuf_putf(c, "%s", nbr->last_lsdb_version);
+		ccn_charbuf_putf(c, "%ld", nbr->last_lsdb_version);
 		ccnb_append_tagged_blob(templ, CCN_DTAG_Component, c->buf, c->length);
 		ccn_charbuf_append_closer(templ); /* </Exclude> */
 		ccn_charbuf_append_closer(templ); /* </Interest> */
