diff --git a/src/backend.cmod b/src/backend.cmod
index bd84c5de9e9a93e49ee0da30944331e4ebcf2984..4e18209d00088448b895c61f1c22f14aeda2c7b8 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 */
 
 /*
- * $Id: backend.cmod,v 1.209 2008/01/01 14:51:46 grubba Exp $
+ * $Id: backend.cmod,v 1.210 2008/01/04 19:36:55 grubba Exp $
  *
  * Backend object.
  */
@@ -1374,8 +1374,13 @@ PIKECLASS Backend
     if (!me) Pike_fatal ("Backend not set.\n");
 #endif
 #ifdef __NT__
-    if (box->events && !(fd_query_properties(fd, fd_CAN_NONBLOCK) & fd_CAN_NONBLOCK)) {
-      Pike_fatal("hook_fd_callback_box() on non-socket!\n");
+    if ((fd >= 0) && box->events &&
+	!(fd_query_properties(fd, fd_CAN_NONBLOCK) & fd_CAN_NONBLOCK)) {
+      Pike_fatal("hook_fd_callback_box() on non-socket!\n"
+		 "  fd: %d\n"
+		 "  events: 0x%04x\n"
+		 "  fd_properties: 0x%04x\n",
+		 fd, box->events, fd_query_properties(fd, fd_CAN_NONBLOCK));
     }
 #endif /* __NT__ */
     add_fd_box (box);