diff --git a/libs/esl/src/esl.c b/libs/esl/src/esl.c
index ab89b4c822..3f00a209f9 100644
--- a/libs/esl/src/esl.c
+++ b/libs/esl/src/esl.c
@@ -1018,6 +1018,8 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *
 		goto fail;
 	}
 
+	handle->destroyed = 0;
+
 	if (timeout) {
 #ifdef WIN32
 		u_long arg = 1;
@@ -1115,7 +1117,7 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *
 
  fail:
 
-	handle->connected = 0;
+	esl_disconnect(handle);
 
 	return ESL_FAIL;
 }