|  | @@ -4063,7 +4063,6 @@ choose_random_entry(cpath_build_state_t *state)
 | 
	
		
			
				|  |  |    int preferred_min, consider_exit_family = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (chosen_exit) {
 | 
	
		
			
				|  |  | -    smartlist_add(exit_family, chosen_exit);
 | 
	
		
			
				|  |  |      routerlist_add_family(exit_family, chosen_exit);
 | 
	
		
			
				|  |  |      consider_exit_family = 1;
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -4086,6 +4085,8 @@ choose_random_entry(cpath_build_state_t *state)
 | 
	
		
			
				|  |  |        r = entry_is_live(entry, need_uptime, need_capacity, 0, &msg);
 | 
	
		
			
				|  |  |        if (!r)
 | 
	
		
			
				|  |  |          continue; /* down, no point */
 | 
	
		
			
				|  |  | +      if (r == chosen_exit)
 | 
	
		
			
				|  |  | +        continue; /* don't pick the same node for entry and exit */
 | 
	
		
			
				|  |  |        if (consider_exit_family && smartlist_isin(exit_family, r))
 | 
	
		
			
				|  |  |          continue; /* avoid relays that are family members of our exit */
 | 
	
		
			
				|  |  |        if (options->EntryNodes &&
 |