diff --git a/common/bitutil/compress_fuzz.go b/common/bitutil/compress_fuzz.go
index 1b87f50edc9b6032eec028b052f4b9d962e7d0cb..714bbcd131d568695a987a8b78bd12cac011c14c 100644
--- a/common/bitutil/compress_fuzz.go
+++ b/common/bitutil/compress_fuzz.go
@@ -24,7 +24,7 @@ import "bytes"
 // invocations.
 func Fuzz(data []byte) int {
 	if len(data) == 0 {
-		return -1
+		return 0
 	}
 	if data[0]%2 == 0 {
 		return fuzzEncode(data[1:])
@@ -39,7 +39,7 @@ func fuzzEncode(data []byte) int {
 	if !bytes.Equal(data, proc) {
 		panic("content mismatch")
 	}
-	return 0
+	return 1
 }
 
 // fuzzDecode implements a go-fuzz fuzzer method to test the bit decoding and
@@ -52,5 +52,5 @@ func fuzzDecode(data []byte) int {
 	if comp := bitsetEncodeBytes(blob); !bytes.Equal(comp, data) {
 		panic("content mismatch")
 	}
-	return 0
+	return 1
 }
diff --git a/tests/fuzzers/keystore/keystore-fuzzer.go b/tests/fuzzers/keystore/keystore-fuzzer.go
index 704f29dc482e20a3be839887f5e772bf4516fd64..e3bcae92e1595de07c57dcdb5fc52d53d23de056 100644
--- a/tests/fuzzers/keystore/keystore-fuzzer.go
+++ b/tests/fuzzers/keystore/keystore-fuzzer.go
@@ -33,5 +33,5 @@ func Fuzz(input []byte) int {
 		panic(err)
 	}
 	os.Remove(a.URL.Path)
-	return 0
+	return 1
 }
diff --git a/tests/fuzzers/rlp/rlp_fuzzer.go b/tests/fuzzers/rlp/rlp_fuzzer.go
index 534540476cb4909f726f030a96b84ff712c4d9a0..18b36287b53c2250eafa7c9c9d98fcf0037013b9 100644
--- a/tests/fuzzers/rlp/rlp_fuzzer.go
+++ b/tests/fuzzers/rlp/rlp_fuzzer.go
@@ -37,17 +37,17 @@ func decodeEncode(input []byte, val interface{}, i int) {
 }
 
 func Fuzz(input []byte) int {
+	if len(input) == 0 {
+		return 0
+	}
+
 	var i int
 	{
-		if len(input) > 0 {
-			rlp.Split(input)
-		}
+		rlp.Split(input)
 	}
 	{
-		if len(input) > 0 {
-			if elems, _, err := rlp.SplitList(input); err == nil {
-				rlp.CountValues(elems)
-			}
+		if elems, _, err := rlp.SplitList(input); err == nil {
+			rlp.CountValues(elems)
 		}
 	}
 
@@ -123,5 +123,5 @@ func Fuzz(input []byte) int {
 		var rs types.Receipts
 		decodeEncode(input, &rs, i)
 	}
-	return 0
+	return 1
 }
diff --git a/tests/fuzzers/stacktrie/trie_fuzzer.go b/tests/fuzzers/stacktrie/trie_fuzzer.go
index a072ff772d204004f31c1cfd3cffec269f25a31b..5cea7769c284e77b522107a4734662d6563cb63c 100644
--- a/tests/fuzzers/stacktrie/trie_fuzzer.go
+++ b/tests/fuzzers/stacktrie/trie_fuzzer.go
@@ -148,6 +148,8 @@ func (f *fuzzer) fuzz() int {
 		vals        kvs
 		useful      bool
 		maxElements = 10000
+		// operate on unique keys only
+		keys = make(map[string]struct{})
 	)
 	// Fill the trie with elements
 	for i := 0; !f.exhausted && i < maxElements; i++ {
@@ -158,6 +160,11 @@ func (f *fuzzer) fuzz() int {
 			// thus 'deletion' which is not supported on stacktrie
 			break
 		}
+		if _, present := keys[string(k)]; present {
+			// This key is a duplicate, ignore it
+			continue
+		}
+		keys[string(k)] = struct{}{}
 		vals = append(vals, kv{k: k, v: v})
 		trieA.Update(k, v)
 		useful = true
diff --git a/tests/fuzzers/txfetcher/txfetcher_fuzzer.go b/tests/fuzzers/txfetcher/txfetcher_fuzzer.go
index 10c7eb9424967c5197cee9906b15989423cef274..d1d6fdc66592963c8b9cf01b45dc81d51a1a48a4 100644
--- a/tests/fuzzers/txfetcher/txfetcher_fuzzer.go
+++ b/tests/fuzzers/txfetcher/txfetcher_fuzzer.go
@@ -51,8 +51,9 @@ func init() {
 func Fuzz(input []byte) int {
 	// Don't generate insanely large test cases, not much value in them
 	if len(input) > 16*1024 {
-		return -1
+		return 0
 	}
+	verbose := false
 	r := bytes.NewReader(input)
 
 	// Reduce the problem space for certain fuzz runs. Small tx space is better
@@ -124,7 +125,9 @@ func Fuzz(input []byte) int {
 				announceIdxs[i] = (int(annBuf[0])*256 + int(annBuf[1])) % len(txs)
 				announces[i] = txs[announceIdxs[i]].Hash()
 			}
-			fmt.Println("Notify", peer, announceIdxs)
+			if verbose {
+				fmt.Println("Notify", peer, announceIdxs)
+			}
 			if err := f.Notify(peer, announces); err != nil {
 				panic(err)
 			}
@@ -163,8 +166,9 @@ func Fuzz(input []byte) int {
 				return 0
 			}
 			direct := (directFlag % 2) == 0
-
-			fmt.Println("Enqueue", peer, deliverIdxs, direct)
+			if verbose {
+				fmt.Println("Enqueue", peer, deliverIdxs, direct)
+			}
 			if err := f.Enqueue(peer, deliveries, direct); err != nil {
 				panic(err)
 			}
@@ -177,8 +181,9 @@ func Fuzz(input []byte) int {
 				return 0
 			}
 			peer := peers[int(peerIdx)%len(peers)]
-
-			fmt.Println("Drop", peer)
+			if verbose {
+				fmt.Println("Drop", peer)
+			}
 			if err := f.Drop(peer); err != nil {
 				panic(err)
 			}
@@ -191,8 +196,9 @@ func Fuzz(input []byte) int {
 				return 0
 			}
 			tick := time.Duration(tickCnt) * 100 * time.Millisecond
-
-			fmt.Println("Sleep", tick)
+			if verbose {
+				fmt.Println("Sleep", tick)
+			}
 			clock.Run(tick)
 		}
 	}