diff --git a/src/calng/correction_addons/peakfinder9.py b/src/calng/correction_addons/peakfinder9.py
index d70353757c4dbf667529b657cfd46f4de8d3dbe2..bcb0d552833f8c16ba3ccbd39ba071e5b9cff423 100644
--- a/src/calng/correction_addons/peakfinder9.py
+++ b/src/calng/correction_addons/peakfinder9.py
@@ -64,7 +64,8 @@ class Peakfinder9(BaseCorrectionAddon):
             .description(
                 "Current pixel is rejected as start of peak if it does not exceed mean "
                 "by at least mean by this amount times sigma. Both mean and sigma are "
-                "based on window border pixels."
+                "based on window border pixels. This value should be larger than or "
+                "equal to minSnrPeakPixels or things may break."
             )
             .tags("managed")
             .assignmentOptional()
diff --git a/src/calng/kernels/peakfinder9_gpu.cu b/src/calng/kernels/peakfinder9_gpu.cu
index 159e9584c7c02018b1869673a0aa8e4d664c434d..29a538438c8e24e2fde1c70d719702054d468c1e 100644
--- a/src/calng/kernels/peakfinder9_gpu.cu
+++ b/src/calng/kernels/peakfinder9_gpu.cu
@@ -180,6 +180,9 @@ extern "C" __global__ void pf9(const unsigned short num_frames,
 		if (peak_total_mass <= mean + min_snr_whole_peak * sigma) {
 			return;
 		}
+		if (num_peak_pixels < min_peak_pixels || num_peak_pixels > max_peak_pixels) {
+		    return;
+        }
 		if (peak_total_mass == 0) {
 			peak_weighted_ss = static_cast<float>(ss_index);
 			peak_weighted_fs = static_cast<float>(fs_index);