diff --git a/AndroidAsync/src/com/koushikdutta/async/ByteBufferList.java b/AndroidAsync/src/com/koushikdutta/async/ByteBufferList.java
index af6ed56fdde73e17b342707f4c5ad4a64d14402e..3765d390e2d249e56ad1bf83fc9efc5ce8c964f7 100644
--- a/AndroidAsync/src/com/koushikdutta/async/ByteBufferList.java
+++ b/AndroidAsync/src/com/koushikdutta/async/ByteBufferList.java
@@ -162,8 +162,12 @@ public class ByteBufferList {
         while (need > 0) {
             ByteBuffer b = mBuffers.peek();
             int read = Math.min(b.remaining(), need);
-            if (bytes != null)
+            if (bytes != null){
                 b.get(bytes, offset, read);
+            } else {
+                //when bytes is null, just skip data.
+                b.position(b.position() + read);
+            }
             need -= read;
             offset += read;
             if (b.remaining() == 0) {