diff --git a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
index 9256988e903812c2d46b2a62d51e5b3f04c9d976..094eb3fe137b7d64595b9253043048b98048223a 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Xlib.pmod
@@ -680,8 +680,11 @@ class Display
 
     /* Asynchronous connection */
     if (async)
-      set_nonblocking(0, 0, close_callback);
-
+      {
+	if (host)
+	  open_socket();
+	set_nonblocking(0, 0, close_callback);
+      }
     if(host)
       if (!connect(host, XPORT + (int)fields[1]))
 	return 0;