diff --git a/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelControlBlock.java b/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelControlBlock.java
index 7e11518..d6f3fd1 100644
--- a/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelControlBlock.java
+++ b/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelControlBlock.java
@@ -74,11 +74,11 @@
         private final IBufferAcceptor eba = new IBufferAcceptor() {
             @Override
             public void accept(ByteBuffer buffer) {
-                if (remoteClose.get()) {
-                    return;
-                }
                 int delta = buffer.remaining();
                 synchronized (ChannelControlBlock.this) {
+                    if (remoteClose.get()) {
+                        return;
+                    }
                     riEmptyStack.push(buffer);
                 }
                 cSet.addPendingCredits(channelId, delta);
@@ -305,6 +305,10 @@
         remoteClose.set(true);
     }
 
+    boolean getRemoteEOS() {
+        return remoteClose.get();
+    }
+
     synchronized void reportLocalEOSAck() {
         localCloseAck.set(true);
     }
diff --git a/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelSet.java b/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelSet.java
index c3f93d2..ffdb5c6 100644
--- a/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelSet.java
+++ b/hyracks-net/src/main/java/edu/uci/ics/hyracks/net/protocols/muxdemux/ChannelSet.java
@@ -141,12 +141,17 @@
         }
         synchronized (mConn) {
             ChannelControlBlock ccb = ccbArray[channelId];
-            int oldCredits = ccb.getReadCredits();
-            ccb.setReadCredits(oldCredits + delta);
-            if (oldCredits == 0) {
-                assert !pendingChannelCreditsBitmap.get(channelId);
-                pendingChannelCreditsBitmap.set(channelId);
-                pendingWriteEventsCounter.increment();
+            if (ccb != null) {
+                if (ccb.getRemoteEOS()) {
+                    return;
+                }
+                int oldCredits = ccb.getReadCredits();
+                ccb.setReadCredits(oldCredits + delta);
+                if (oldCredits == 0) {
+                    assert !pendingChannelCreditsBitmap.get(channelId);
+                    pendingChannelCreditsBitmap.set(channelId);
+                    pendingWriteEventsCounter.increment();
+                }
             }
         }
     }
