diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index a6d6d8306e02a56fe82d53020f2d3d887ecab253..bb980a6b3a7529e4cdd05179f0632456576290d4 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -6,7 +6,7 @@
 /**/
 #define NO_PIKE_SHORTHAND
 #include "global.h"
-RCSID("$Id: file.c,v 1.194 2000/08/27 01:04:36 grubba Exp $");
+RCSID("$Id: file.c,v 1.195 2000/08/27 18:20:37 grubba Exp $");
 #include "fdlib.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -2472,7 +2472,13 @@ static void low_file_lock(INT32 args, int flags)
 #endif
       )
     {
-      error("Recursive file locks!\n");
+      if (flags & fd_LOCK_NB) {
+	pop_n_elems(args);
+	push_int(0);
+	return;
+      } else {
+	error("Recursive file locks!\n");
+      }
     }
   }