diff --git a/lib/ftp.c b/lib/ftp.c
index ebbcdfab65df245d5072372308d0baaaaf267eb5..be2cfdb3d76c77ec81d9d6263ac8a0f49615c722 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -194,7 +194,7 @@ int Curl_GetFTPResponse(char *buf,
   if(data->set.timeout) {
     /* if timeout is requested, find out how much remaining time we have */
     timeout = data->set.timeout - /* timeout time */
-      (Curl_tvlong(Curl_tvnow()) - Curl_tvlong(conn->now)); /* spent time */
+      Curl_tvdiff(Curl_tvnow(), conn->now)/1000; /* spent time */
     if(timeout <=0 ) {
       failf(data, "Transfer aborted due to timeout");
       return -SELECT_TIMEOUT; /* already too little time */