diff --git a/src/modules/files/udp.c b/src/modules/files/udp.c
index c7af4ead1c431da56c01675c5dcc959f4e71b181..eae71865047d68754a32a03fe1f5af488aa90176 100644
--- a/src/modules/files/udp.c
+++ b/src/modules/files/udp.c
@@ -1,12 +1,12 @@
 /*
- * $Id: udp.c,v 1.6 1999/07/26 11:46:28 grubba Exp $
+ * $Id: udp.c,v 1.7 1999/08/17 14:55:02 grubba Exp $
  */
 
 #include "global.h"
 
 #include "file_machine.h"
 
-RCSID("$Id: udp.c,v 1.6 1999/07/26 11:46:28 grubba Exp $");
+RCSID("$Id: udp.c,v 1.7 1999/08/17 14:55:02 grubba Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -165,6 +165,9 @@ static void udp_bind(INT32 args)
     error("UDP.bind: failed to create socket\n");
   }
 
+  /* Make sure this fd gets closed on exec. */
+  set_close_on_exec(fd, 1);
+
   o=1;
   if(fd_setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char *)&o, sizeof(int)) < 0)
   {