diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp
index cf567e894..9509129e9 100644
--- a/src/ipa/simple/algorithms/awb.cpp
+++ b/src/ipa/simple/algorithms/awb.cpp
@@ -7,6 +7,7 @@
 
 #include "awb.h"
 
+#include <algorithm>
 #include <numeric>
 #include <stdint.h>
 
@@ -69,9 +70,10 @@ void Awb::process(IPAContext &context,
 	const uint64_t nPixels = std::accumulate(
 		histogram.begin(), histogram.end(), 0);
 	const uint64_t offset = blackLevel * nPixels;
-	const uint64_t sumR = stats->sumR_ - offset / 4;
-	const uint64_t sumG = stats->sumG_ - offset / 2;
-	const uint64_t sumB = stats->sumB_ - offset / 4;
+	const uint64_t minValid = 1;
+	const uint64_t sumR = std::max(stats->sumR_ - offset / 4, minValid);
+	const uint64_t sumG = std::max(stats->sumG_ - offset / 2, minValid);
+	const uint64_t sumB = std::max(stats->sumB_ - offset / 4, minValid);
 
 	/*
 	 * Calculate red and blue gains for AWB.
