diff --git a/exchange/bitswap/message/message_test.go b/exchange/bitswap/message/message_test.go
index f98934b37fe959f88aef3484e710e58dc419bee2..9c69136cd7c181cf6b3a9a0767c4535d6909655e 100644
--- a/exchange/bitswap/message/message_test.go
+++ b/exchange/bitswap/message/message_test.go
@@ -169,3 +169,20 @@ func contains(s []string, x string) bool {
 	}
 	return false
 }
+
+func TestDuplicates(t *testing.T) {
+	b := blocks.NewBlock([]byte("foo"))
+	msg := New()
+
+	msg.AddWanted(b.Key())
+	msg.AddWanted(b.Key())
+	if len(msg.Wantlist()) != 1 {
+		t.Fatal("Duplicate in BitSwapMessage")
+	}
+
+	msg.AddBlock(*b)
+	msg.AddBlock(*b)
+	if len(msg.Blocks()) != 1 {
+		t.Fatal("Duplicate in BitSwapMessage")
+	}
+}