diff --git a/src/main/java/net/spy/memcached/MemcachedConnection.java b/src/main/java/net/spy/memcached/MemcachedConnection.java
index <HASH>..<HASH> 100644
--- a/src/main/java/net/spy/memcached/MemcachedConnection.java
+++ b/src/main/java/net/spy/memcached/MemcachedConnection.java
@@ -293,6 +293,10 @@ public final class MemcachedConnection extends SpyObject {
 		ByteBuffer rbuf=qa.getRbuf();
 		final SocketChannel channel = qa.getChannel();
 		int read=channel.read(rbuf);
+		if (read < 0) {
+		    // GRUMBLE.
+		    throw new IOException("Disconnected");
+		}
 		while(read > 0) {
 			getLogger().debug("Read %d bytes", read);
 			rbuf.flip();
if the memcache server disconnects, try to notice.