diff --git a/src/ipc.m b/src/ipc.m
index 889f57926e2f42f002c57b8e2e8adaf43eee7a87..9ece7799591f4f89e8cc45227ef1881c8ddee9f5 100644
--- a/src/ipc.m
+++ b/src/ipc.m
@@ -194,13 +194,13 @@ ipc_channel_put(struct ipc_channel *ch, void *data)
 bool
 ipc_channel_has_readers(struct ipc_channel *ch)
 {
-	return !rlist_empty(&ch->readers);
+	return ch->creaders > 0;
 }
 
 bool
 ipc_channel_has_writers(struct ipc_channel *ch)
 {
-	return !rlist_empty(&ch->writers);
+	return ch->cwriters > 0;
 }
 
 int