diff --git a/src/fisher/Fisher.cpp b/src/fisher/Fisher.cpp
index 4cbfa7af423f7b9576599e904234e9e4aaa68808..8b2aaf2107344779540758dab87bf3baa5abce5f 100644
--- a/src/fisher/Fisher.cpp
+++ b/src/fisher/Fisher.cpp
@@ -59,7 +59,7 @@ bool Fisher::calculate() {
     long long n11 = (long)_overlapCounts;
     // this could be < 0 because multiple overlaps
     long long n12 = (long)max(0L, (long)_queryCounts - (long)_overlapCounts);
-    long long n21 = (long)(_dbCounts - _overlapCounts);
+    long long n21 = max(0L, (long)(_dbCounts - _overlapCounts));
     long long n22_full = n22_full_bases / bMean;
     long long n22 = max(0L, (long)(n22_full - n12 - n21 - n11));