diff --git a/src/slurmd/io.c b/src/slurmd/io.c
index c910c451c02d39d1c1ecc5861ec40c1c752f877d..b9be3f73b9e0163c334ec61bf40fec4efa8b768b 100644
--- a/src/slurmd/io.c
+++ b/src/slurmd/io.c
@@ -1148,7 +1148,7 @@ _writable(io_obj_t *obj)
 	      && ((cbuf_used(io->buf) > 0) || io->eof));
 
 	if ((io->type == CLIENT_STDERR) && (io->id == 0))
-		rc = (rc || log_has_data());
+		rc = rc || (log_has_data() && !io->disconnected);
 
 	if (rc)
 		debug3("%d %s is writable", io->id, _io_str[io->type]);