|  | @@ -1806,8 +1806,11 @@ router_pick_dirserver_generic(smartlist_t *sourcelist,
 | 
	
		
			
				|  |  |    const routerstatus_t *choice;
 | 
	
		
			
				|  |  |    int busy = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  if (smartlist_len(sourcelist) == 1)
 | 
	
		
			
				|  |  | +  if (smartlist_len(sourcelist) == 1) {
 | 
	
		
			
				|  |  | +    /* If there's only one choice, then we should disable the logic that
 | 
	
		
			
				|  |  | +     * would otherwise prevent us from choosing ourself. */
 | 
	
		
			
				|  |  |      flags |= PDS_ALLOW_SELF;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    choice = router_pick_trusteddirserver_impl(sourcelist, type, flags, &busy);
 | 
	
		
			
				|  |  |    if (choice || !(flags & PDS_RETRY_IF_NO_SERVERS))
 |