update
diff --git a/nlsr.c b/nlsr.c
index 6655558..3895e5f 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -250,14 +250,17 @@
    	hashtb_start(nlsr->npl, e);
     	res = hashtb_seek(e, np->name, strlen(np->name), 0);
 
-	assert(res == HT_NEW_ENTRY);   
+	if(res == HT_NEW_ENTRY)
+	{   
 
-	hnp = e->data;
-	hnp->name=(char *)malloc(np->length);
-    	memcpy(hnp->name,np->name,np->length);
-	hnp->length=np->length;
+		hnp = e->data;
+		hnp->name=(char *)malloc(np->length);
+    		memcpy(hnp->name,np->name,np->length);
+		hnp->length=np->length;
+	}
+    	
+	hashtb_end(e);
 
-    	hashtb_end(e);
 
 	printf("\n");
 
diff --git a/nlsr_adl.c b/nlsr_adl.c
index 62aff9d..c23d87c 100644
--- a/nlsr_adl.c
+++ b/nlsr_adl.c
@@ -37,23 +37,25 @@
    	hashtb_start(nlsr->adl, e);
     	res = hashtb_seek(e, nbr->neighbor->name , nbr->neighbor->length, 0);
 
-	assert (res == HT_NEW_ENTRY);
+	if(res == HT_NEW_ENTRY )
+	{
    
-	hnbr = e->data;
+		hnbr = e->data;
 
-	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->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->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->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);
 
-	struct hashtb_param param_luq = {0};
-	hnbr->lsa_update_queue=hashtb_create(200, &param_luq);
+		struct hashtb_param param_luq = {0};
+		hnbr->lsa_update_queue=hashtb_create(200, &param_luq);
+	}
 	
     	hashtb_end(e);
 
@@ -102,10 +104,11 @@
    	res = hashtb_seek(e, nbr->buf, nbr->length, 0);
 	
 
-	assert( res == HT_OLD_ENTRY);
-
-	nnbr=e->data;
-	nnbr->status=status;
+	if (res == HT_OLD_ENTRY)
+	{
+		nnbr=e->data;
+		nnbr->status=status;
+	}
 	
 	hashtb_end(e);
 }
@@ -125,10 +128,10 @@
 	hashtb_start(nlsr->adl, e);
 	res = hashtb_seek(e, nbr->buf, nbr->length, 0);
 
-	assert( res == HT_OLD_ENTRY);
-
-	nnbr=e->data;
-	memcpy(nnbr->last_lsdb_version,version,strlen(version)+1);
-	
+	if( res == HT_OLD_ENTRY )
+	{
+		nnbr=e->data;
+		memcpy(nnbr->last_lsdb_version,version,strlen(version)+1);
+	}
 	hashtb_end(e);
 }