| 
					
				 | 
			
			
				@@ -760,7 +760,7 @@ addressmap_register_virtual_address(int type, char *new_address) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     &vent->ipv4_address : &vent->hostname_address; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (*addrp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     addressmap_entry_t *ent = strmap_get(addressmap, *addrp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (ent && !strcasecmp(new_address, ent->new_address)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (ent && ent->new_address && !strcasecmp(new_address, ent->new_address)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tor_free(new_address); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return tor_strdup(*addrp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } else 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -822,7 +822,7 @@ addressmap_get_mappings(smartlist_t *sl, time_t min_expires, time_t max_expires) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          addressmap_ent_remove(key, val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          iter = strmap_iter_next_rmv(addressmap,iter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       } else if (val->new_address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          size_t len = strlen(key)+strlen(val->new_address)+2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          char *line = tor_malloc(len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          tor_snprintf(line, len, "%s %s", key, val->new_address); 
			 |