diff --git a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/hpack/HPackDecoder.java b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/hpack/HPackDecoder.java
index 3f35676..880d0cc 100644
--- a/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/hpack/HPackDecoder.java
+++ b/httpcore5-h2/src/main/java/org/apache/hc/core5/http2/hpack/HPackDecoder.java
@@ -158,6 +158,10 @@
         }
     }
 
+    int getTmpBufSize() {
+        return tmpBuf == null ? 0 : tmpBuf.capacity();
+    }
+
     private void clearState() {
 
         if (this.tmpBuf != null) {
@@ -182,7 +186,7 @@
         if (this.tmpBuf == null) {
             this.tmpBuf = CharBuffer.allocate(Math.max(256, extra));
         }
-        final int requiredCapacity = this.tmpBuf.remaining() + extra;
+        final int requiredCapacity = this.tmpBuf.position() + extra;
         if (requiredCapacity > this.tmpBuf.capacity()) {
             expandCapacity(requiredCapacity);
         }
diff --git a/httpcore5-h2/src/test/java/org/apache/hc/core5/http2/hpack/TestHPackCoding.java b/httpcore5-h2/src/test/java/org/apache/hc/core5/http2/hpack/TestHPackCoding.java
index 47dc1ce..ed1f4d1 100644
--- a/httpcore5-h2/src/test/java/org/apache/hc/core5/http2/hpack/TestHPackCoding.java
+++ b/httpcore5-h2/src/test/java/org/apache/hc/core5/http2/hpack/TestHPackCoding.java
@@ -226,6 +226,23 @@
         Assertions.assertEquals("this and that and Huffman", strBuf.toString());
     }
 
+    @Test
+    public void testEnsureCapacity() throws Exception {
+
+        final HPackEncoder encoder = new HPackEncoder(StandardCharsets.US_ASCII);
+        final HPackDecoder decoder = new HPackDecoder(StandardCharsets.UTF_8);
+
+        final ByteArrayBuffer buffer = new ByteArrayBuffer(16);
+        encoder.encodeString(buffer, "this and that", false);
+
+        final StringBuilder strBuf = new StringBuilder();
+        for (int i = 0; i < 1000; i++) {
+            decoder.decodeString(wrap(buffer), strBuf);
+            strBuf.delete(0,strBuf.length());
+        }
+        Assertions.assertEquals(decoder.getTmpBufSize(), 256);
+    }
+
     static final int SWISS_GERMAN_HELLO[] = {
             0x47, 0x72, 0xFC, 0x65, 0x7A, 0x69, 0x5F, 0x7A, 0xE4, 0x6D, 0xE4
     };
