diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod
index c4508a590f1f16de9fa6e425f6afcd63f2081d97..c90a8c42aaab80fcdd13f7286be37c83e3f74ece 100644
--- a/lib/modules/Thread.pmod
+++ b/lib/modules/Thread.pmod
@@ -808,13 +808,6 @@ class Fifo
     return ret;
   }
 
-  int write(mixed value)
-  {
-    if (num == sizeof(buffer)) error ("Deadlock detected - fifo full.\n");
-    write_unlocked (value);
-    return num;
-  }
-
   int try_write(mixed value)
   {
     if (num == sizeof (buffer)) return 0;
@@ -822,6 +815,12 @@ class Fifo
     return ++num;
   }
 
+  int write(mixed value)
+  {
+    if (!try_write(value)) error("Deadlock detected - fifo full.\n");
+    return num;
+  }
+
   static void create(int|void size)
   {
     write_tres=0;