diff --git a/http2/hpack/tables.go b/http2/hpack/tables.go
index 8701592..31bd5a5 100644
--- a/http2/hpack/tables.go
+++ b/http2/hpack/tables.go
@@ -69,10 +69,10 @@
 		f := t.ents[k]
 		id := t.evictCount + uint64(k) + 1
 		if t.byName[f.Name] == id {
-			t.byName[f.Name] = 0
+			delete(t.byName, f.Name)
 		}
 		if p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id {
-			t.byNameValue[p] = 0
+			delete(t.byNameValue, p)
 		}
 	}
 	copy(t.ents, t.ents[n:])
diff --git a/http2/hpack/tables_test.go b/http2/hpack/tables_test.go
index 7f40d9a..d963f36 100644
--- a/http2/hpack/tables_test.go
+++ b/http2/hpack/tables_test.go
@@ -89,6 +89,32 @@
 	}
 }
 
+func TestHeaderFieldTable_LookupMapEviction(t *testing.T) {
+	table := &headerFieldTable{}
+	table.init()
+	table.addEntry(pair("key1", "value1-1"))
+	table.addEntry(pair("key2", "value2-1"))
+	table.addEntry(pair("key1", "value1-2"))
+	table.addEntry(pair("key3", "value3-1"))
+	table.addEntry(pair("key4", "value4-1"))
+	table.addEntry(pair("key2", "value2-2"))
+
+	// evict all pairs
+	table.evictOldest(table.len())
+
+	if l := table.len(); l > 0 {
+		t.Errorf("table.len() = %d, want 0", l)
+	}
+
+	if l := len(table.byName); l > 0 {
+		t.Errorf("len(table.byName) = %d, want 0", l)
+	}
+
+	if l := len(table.byNameValue); l > 0 {
+		t.Errorf("len(table.byNameValue) = %d, want 0", l)
+	}
+}
+
 func TestStaticTable(t *testing.T) {
 	fromSpec := `
           +-------+-----------------------------+---------------+
