|  | @@ -559,10 +559,6 @@ err_t lwftp_retr(lwftp_session_t *s)
 | 
	
		
			
				|  |  |    err_t error;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Check user supplied data
 | 
	
		
			
				|  |  | -  if (s->control_state != LWFTP_CLOSED || s->control_pcb) {
 | 
	
		
			
				|  |  | -    s->error = "previous connection is incomplete";
 | 
	
		
			
				|  |  | -    return ERR_ARG;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  |    if (!s->settings->remote_path) {
 | 
	
		
			
				|  |  |      s->error = "empty remote path";
 | 
	
		
			
				|  |  |      return ERR_ARG;
 | 
	
	
		
			
				|  | @@ -575,6 +571,11 @@ err_t lwftp_retr(lwftp_session_t *s)
 | 
	
		
			
				|  |  |      s->error = "empty password";
 | 
	
		
			
				|  |  |      return ERR_ARG;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (s->control_state != LWFTP_CLOSED || s->control_pcb) {
 | 
	
		
			
				|  |  | +    // previous connection is incomplete
 | 
	
		
			
				|  |  | +    lwftp_control_close(s, -1);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    if (s->data_pcb) {
 | 
	
		
			
				|  |  |      lwftp_pcb_close(s->data_pcb);
 | 
	
		
			
				|  |  |    }
 |