diff --git a/nlsr.c b/nlsr.c
index ec250fa..7eadb85 100644
--- a/nlsr.c
+++ b/nlsr.c
@@ -563,8 +563,6 @@
 			free(nlsr->slice_prefix);
 		if ( slice_prefix[strlen(slice_prefix)-1] == '/' )
 			slice_prefix[strlen(slice_prefix)-1]='\0';
-		//if( nlsr->slice_prefix)
-			//free(nlsr->slice_prefix);
 		nlsr->slice_prefix=(char *)calloc(strlen(slice_prefix)+1,sizeof(char));
 		memcpy(nlsr->slice_prefix,slice_prefix,strlen(slice_prefix)+1);
 		printf("Slice prefix: %s \n",nlsr->slice_prefix);
@@ -1222,6 +1220,12 @@
 		free(nlsr->site_name);
 
 	free(nlsr->router_name);
+
+
+	free(nlsr->slice_prefix);
+	free(nlsr->topo_prefix);
+	free(nlsr->logDir);
+
 	if ( nlsr->debugging )
 	{
 		printf("Finished freeing allocated memory\n");
diff --git a/nlsr_adl.c b/nlsr_adl.c
index f93eba7..4eedf40 100644
--- a/nlsr_adl.c
+++ b/nlsr_adl.c
@@ -681,7 +681,6 @@
 	size_t comp_size;
 
 	struct ccn_charbuf *name=ccn_charbuf_create();
-	name = ccn_charbuf_create();
     	res = ccn_name_from_uri(name,nbr_name_uri);
     	if (res < 0) {
         	fprintf(stderr, "Bad ccn URI: %s\n", nbr_name_uri);
diff --git a/nlsr_ndn.c b/nlsr_ndn.c
index a0967a1..3a724d5 100644
--- a/nlsr_ndn.c
+++ b/nlsr_ndn.c
@@ -134,7 +134,6 @@
 	len++;
 
 	char *neighbor=(char *)calloc(len,sizeof(char));
-	//memset(neighbor,0,len);
 
 	for(i=nlsr_position+3+offset; i<info->interest_comps->n-1;i++)
 	{
@@ -145,8 +144,7 @@
 
 	}
 
-	lsaId->name=(char *)malloc(strlen(neighbor)+1);
-	memset(lsaId->name,0,strlen(neighbor)+1);
+	lsaId->name=(char *)calloc(strlen(neighbor)+1,sizeof(char));
 	memcpy(lsaId->name,neighbor,strlen(neighbor)+1);
 	lsaId->length=strlen(neighbor)+1;
 
@@ -354,11 +352,10 @@
 			send_info_interest_to_neighbor(nbr);
 		}
 
-		free(nbr);
-		//free(raw_data);
-		//ccn_charbuf_destroy(&sp.template_ccnb);
-		//ccn_charbuf_destroy(&pubid);
-		//ccn_charbuf_destroy(&pubkey);
+		if ( nbr->name != NULL )
+			free(nbr->name);
+		if ( nbr != NULL )
+			free(nbr);
 		ccn_charbuf_destroy(&resultbuf);
 	}
 
@@ -573,8 +570,10 @@
 					}
 
 	*/
-
-	free(nbr);
+	if ( nbr->name != NULL )
+		free(nbr->name);
+	if ( nbr != NULL )
+		free(nbr);
 
 
 }
diff --git a/nlsr_npt.c b/nlsr_npt.c
index 00728cd..3f9f240 100644
--- a/nlsr_npt.c
+++ b/nlsr_npt.c
@@ -49,8 +49,7 @@
 	{
 		ne=e->data;
 
-		ne->orig_router=(char *)malloc(strlen(orig_router)+1);
-		memset(ne->orig_router,0,strlen(orig_router)+1);
+		ne->orig_router=(char *)calloc(strlen(orig_router)+1,sizeof(char));
 		memcpy(ne->orig_router,orig_router,strlen(orig_router)+1);
 
 	
