diff --git a/lib/7.8/modules/SSL.pmod/sslfile.pike b/lib/7.8/modules/SSL.pmod/sslfile.pike
index fe8bbfddd8b8083313ada19e4f553d3f1ab3eff1..985d8331762912d93c147240cc071f88c5f30082 100644
--- a/lib/7.8/modules/SSL.pmod/sslfile.pike
+++ b/lib/7.8/modules/SSL.pmod/sslfile.pike
@@ -634,7 +634,9 @@ int close (void|string how, void|int clean_close, void|int dont_throw)
 	RETURN (0);
       }, 0);
 
-    if (close_packet_send_state == CLOSE_PACKET_NOT_SCHEDULED)
+    if (dont_throw) {
+      close_packet_send_state = CLOSE_PACKET_MAYBE_IGNORED_WRITE_ERROR;
+    } else if (close_packet_send_state == CLOSE_PACKET_NOT_SCHEDULED)
       close_packet_send_state = CLOSE_PACKET_SCHEDULED;
 
     // Even in nonblocking mode we call direct_write here to try to