diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index 9c1e4dcda84ff1563d903d344e8d1d52734994e6..5b048e086d1ace7953996a42dc9946f8592f693f 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -5,7 +5,7 @@
 \*/
 
 #include "global.h"
-RCSID("$Id: file.c,v 1.89 1998/04/16 21:39:45 hubbe Exp $");
+RCSID("$Id: file.c,v 1.90 1998/04/17 22:02:44 hubbe Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -1713,7 +1713,7 @@ static void file_connect(INT32 args)
   tmp=fd_connect(tmp, (struct sockaddr *)&addr, sizeof(addr));
   THREADS_DISALLOW();
 
-  if(tmp < 0)
+  if(tmp < 0 && !(errno==EINPROGRESS && (THIS->open_mode & FILE_NONBLOCKING)))
   {
     /* something went wrong */
     ERRNO=errno;