diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c
index fabc950872831af98c8e7375b5fd713db3d5b904..0b034b72a4b13b6950d8832d2ac8cc0d463489d3 100644
--- a/src/core/transport/chttp2/hpack_table.c
+++ b/src/core/transport/chttp2/hpack_table.c
@@ -324,10 +324,9 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) {
   }
 
   /* copy the finalized entry in */
-  tbl->ents[tbl->last_ent] = GRPC_MDELEM_REF(md);
+  tbl->ents[(tbl->first_ent + tbl->num_ents) % tbl->cap_entries] = GRPC_MDELEM_REF(md);
 
   /* update accounting values */
-  tbl->last_ent = ((tbl->last_ent + 1) % tbl->cap_entries);
   tbl->num_ents++;
   tbl->mem_used += (gpr_uint32)elem_bytes;
   return 1;
diff --git a/src/core/transport/chttp2/hpack_table.h b/src/core/transport/chttp2/hpack_table.h
index 6d506de8a5e9ba4d7e948d6f150e5d3264cc8bad..e03b8c19b3c3d38da2ea4bfd8a2b5aaf3a873dee 100644
--- a/src/core/transport/chttp2/hpack_table.h
+++ b/src/core/transport/chttp2/hpack_table.h
@@ -62,8 +62,6 @@ typedef struct {
   grpc_mdctx *mdctx;
   /* the first used entry in ents */
   gpr_uint32 first_ent;
-  /* the last used entry in ents */
-  gpr_uint32 last_ent;
   /* how many entries are in the table */
   gpr_uint32 num_ents;
   /* the amount of memory used by the table, according to the hpack algorithm */
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c
index 1090ad667d124cce01985c6705607920485de335..b793358653025aa676714d9274e6726e7009286f 100644
--- a/test/core/end2end/fixtures/proxy.c
+++ b/test/core/end2end/fixtures/proxy.c
@@ -146,7 +146,6 @@ void grpc_end2end_proxy_destroy(grpc_end2end_proxy *proxy) {
 }
 
 static void unrefpc(proxy_call *pc, const char *reason) {
-  gpr_log(GPR_DEBUG, "PROXY UNREF %s", reason);
   if (gpr_unref(&pc->refs)) {
     grpc_call_destroy(pc->c2p);
     grpc_call_destroy(pc->p2s);
@@ -159,7 +158,6 @@ static void unrefpc(proxy_call *pc, const char *reason) {
 }
 
 static void refpc(proxy_call *pc, const char *reason) {
-  gpr_log(GPR_DEBUG, "PROXY   REF %s", reason);
   gpr_ref(&pc->refs);
 }
 
diff --git a/test/core/transport/chttp2/hpack_parser_test.c b/test/core/transport/chttp2/hpack_parser_test.c
index 3a313375a499ee1e882219854f088a776c44ae39..e4cabeae3bdb2a23c84bba8e42feb03ce4fe5e51 100644
--- a/test/core/transport/chttp2/hpack_parser_test.c
+++ b/test/core/transport/chttp2/hpack_parser_test.c
@@ -151,7 +151,8 @@ static void test_vectors(grpc_slice_split_mode mode) {
   grpc_chttp2_hpack_parser_destroy(&parser);
 
   grpc_chttp2_hpack_parser_init(&parser, mdctx);
-  parser.table.max_bytes = 256;
+grpc_chttp2_hptbl_set_max_bytes(&parser.table, 256);
+grpc_chttp2_hptbl_set_current_table_size(&parser.table, 256);
   /* D.5.1 */
   test_vector(&parser, mode,
               "4803 3330 3258 0770 7269 7661 7465 611d"