diff --git a/lib/modules/Stdio.pmod b/lib/modules/Stdio.pmod
index 10260a1e6bd32bcdfc21c7b9eebe26d4acf7476b..ec9276d821dc770ab577e9bb7918000e7d7a7137 100644
--- a/lib/modules/Stdio.pmod
+++ b/lib/modules/Stdio.pmod
@@ -1,4 +1,4 @@
-// $Id: Stdio.pmod,v 1.35 1998/10/21 22:13:54 grubba Exp $
+// $Id: Stdio.pmod,v 1.36 1998/10/22 02:13:18 grubba Exp $
 
 #include <string.h>
 
@@ -202,7 +202,9 @@ class File
       ___read_callback(___id, s);
     }else{
       ::set_read_callback(0);
-      ___close_callback(___id);
+      if (___close_callback) {
+	___close_callback(___id);
+      }
     }
   }
 
@@ -216,7 +218,10 @@ class File
     {
       ___read_oob_callback(___id, s);
     }else{
-      ___close_callback(___id);
+      ::set_read_oob_callback(0);
+      if (___close_callback) {
+	___close_callback(___id);
+      }
     }
   }