diff --git a/lib/java/src/org/apache/thrift/TBaseHelper.java b/lib/java/src/org/apache/thrift/TBaseHelper.java
index 5898d5b..eec648b 100644
--- a/lib/java/src/org/apache/thrift/TBaseHelper.java
+++ b/lib/java/src/org/apache/thrift/TBaseHelper.java
@@ -224,11 +224,12 @@
     byte[] buf = bb.array();
 
     int arrayOffset = bb.arrayOffset();
-    int origLimit = bb.limit();
-    int limit = (origLimit - arrayOffset > 128) ? arrayOffset + 128 : origLimit;
+    int offset = arrayOffset + bb.position();
+    int origLimit = arrayOffset + bb.limit();
+    int limit = (origLimit - offset > 128) ? offset + 128 : origLimit;
 
-    for (int i = arrayOffset; i < limit; i++) {
-      if (i > arrayOffset) {
+    for (int i = offset; i < limit; i++) {
+      if (i > offset) {
         sb.append(" ");
       }
       sb.append(paddedByteString(buf[i]));
diff --git a/lib/java/test/org/apache/thrift/TestTBaseHelper.java b/lib/java/test/org/apache/thrift/TestTBaseHelper.java
index 6378524..8b08555 100644
--- a/lib/java/test/org/apache/thrift/TestTBaseHelper.java
+++ b/lib/java/test/org/apache/thrift/TestTBaseHelper.java
@@ -155,6 +155,23 @@
     assertNull(TBaseHelper.rightSize(null));
   }
 
+  public void testByteBufferToString() {
+    byte[] array = new byte[]{1, 2, 3};
+    ByteBuffer bb = ByteBuffer.wrap(array, 1, 2);
+    StringBuilder sb = new StringBuilder();
+    TBaseHelper.toString(bb, sb);
+    assertEquals("02 03", sb.toString());
+    bb = ByteBuffer.wrap(array, 0, array.length);
+    bb.position(1);
+    bb = bb.slice();
+    assertEquals(1, bb.arrayOffset());
+    assertEquals(0, bb.position());
+    assertEquals(2, bb.limit());
+    sb = new StringBuilder();
+    TBaseHelper.toString(bb, sb);
+    assertEquals("02 03", sb.toString());
+  }
+
   public void testCopyBinaryWithByteBuffer() throws Exception {
     byte[] bytes = new byte[]{0, 1, 2, 3, 4, 5};
     ByteBuffer b = ByteBuffer.wrap(bytes);
