diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod
index 019b9718ff1b9058c49ffc455b7c8d0fb2f547a2..255fe6f0c29a4f871ef3b7b520b866b2bf11ac7f 100644
--- a/lib/modules/Thread.pmod
+++ b/lib/modules/Thread.pmod
@@ -27,7 +27,7 @@ class Fifo {
       object key=lock::lock();
       while(size() == sizeof(buffer)) w_cond::wait(key);
       buffer[w_ptr]=v;
-      if(++w_ptr >= sizeof(buffer)) r_ptr=0;
+      if(++w_ptr >= sizeof(buffer)) w_ptr=0;
       r_cond::signal();
     }