diff --git a/src/slurmd/io.c b/src/slurmd/io.c
index 732033b6802cd3b7befbe70b3d3eb0656d9fc4f5..de4896ee4463170afc92fda6559f85797dfe3fa8 100644
--- a/src/slurmd/io.c
+++ b/src/slurmd/io.c
@@ -345,7 +345,7 @@ _fatal_cleanup(void *arg)
 	i = list_iterator_create(job->objs);
 	while((obj = list_next(i))) {
 		io = (struct io_info *) obj->arg;
-		if ((*obj->ops->writable)(obj))
+		if (obj->ops->writable && (*obj->ops->writable)(obj))
 			_write(obj, job->objs);
 	}
 	list_iterator_destroy(i);