diff --git a/lib/modules/SSL.pmod/sslfile.pike b/lib/modules/SSL.pmod/sslfile.pike
index eedbe4d818bcf2649fa06a0a9bad80aca7b71afb..5ad5d86e423988d1e22a39cc0cd1579bdd28bd8a 100644
--- a/lib/modules/SSL.pmod/sslfile.pike
+++ b/lib/modules/SSL.pmod/sslfile.pike
@@ -1,4 +1,4 @@
-/* $Id: sslfile.pike,v 1.11 1998/06/11 18:11:18 grubba Exp $
+/* $Id: sslfile.pike,v 1.12 1998/06/11 18:50:56 grubba Exp $
  *
  */
 
@@ -60,7 +60,11 @@ private int queue_write()
   werror(sprintf("SSL.sslfile->queue_write: buffer = '%s'\n", write_buffer));
 #endif
 
-  socket::set_write_callback(ssl_write_callback);
+  if (catch {
+    socket::set_write_callback(ssl_write_callback);
+  }) {
+    return(0);
+  }
   
 #ifdef SSL3_DEBUG
   werror("SSL.sslfile->queue_write: end\n");