diff --git a/lib/multi.c b/lib/multi.c
index 4a037497115ca01d860e35a5ca74f9d1f7f4c98e..bc69996e67ade04b3cff1f8debf5443041316ebf 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1024,6 +1024,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
       if(CURLE_OK == data->result) {
         /* after init, go CONNECT */
         multistate(data, CURLM_STATE_CONNECT);
+        Curl_pgrsTime(data, TIMER_STARTSINGLE);
         result = CURLM_CALL_MULTI_PERFORM;
       }
       break;
@@ -1035,7 +1036,6 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
 
     case CURLM_STATE_CONNECT:
       /* Connect. We want to get a connection identifier filled in. */
-      Curl_pgrsTime(data, TIMER_STARTSINGLE);
       data->result = Curl_connect(data, &data->easy_conn,
                                   &async, &protocol_connect);
       if(CURLE_NO_CONNECTION_AVAILABLE == data->result) {