diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod
index 03cbae4102d1441113dc2cd261d0b6854146cd53..82bc27fd640ad717d1380dd0c8f583a9f7f083da 100644
--- a/lib/modules/Thread.pmod
+++ b/lib/modules/Thread.pmod
@@ -1125,6 +1125,7 @@ optional class Queue
 
   mixed try_read()
   {
+    if (w_ptr == r_ptr) return UNDEFINED;
     mixed tmp=buffer[r_ptr];
     buffer[r_ptr++] = 0;	// Throw away any references.
     return tmp;