diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp
index 6c151232..5927b5d3 100644
--- a/src/ipa/ipu3/algorithms/agc.cpp
+++ b/src/ipa/ipu3/algorithms/agc.cpp
@@ -34,6 +34,9 @@ static constexpr uint32_t kFrameSkipCount = 6;
 static constexpr double kMinAnalogueGain = 1.0;
 static constexpr double kMaxAnalogueGain = 8.0;
 
+/* Maximum shutter speed allowed */
+static constexpr utils::Duration kMaxShutterSpeed = 60ms;
+
 /* Histogram constants */
 static constexpr uint32_t knumHistogramBins = 256;
 static constexpr double kEvGainTarget = 0.5;
@@ -54,7 +57,8 @@ int Agc::configure(IPAContext &context, const IPAConfigInfo &configInfo)
 
 	/* \todo replace the exposure in lines storage with time based ones. */
 	minExposureLines_ = context.configuration.agc.minShutterSpeed / lineDuration_;
-	maxExposureLines_ = context.configuration.agc.maxShutterSpeed / lineDuration_;
+	maxExposureLines_ = std::min(context.configuration.agc.maxShutterSpeed / lineDuration_,
+				     kMaxShutterSpeed / lineDuration_);
 
 	minAnalogueGain_ = std::max(context.configuration.agc.minAnalogueGain, kMinAnalogueGain);
 	maxAnalogueGain_ = std::min(context.configuration.agc.maxAnalogueGain, kMaxAnalogueGain);
