diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
index 2557320..fdbf461 100644
--- a/src/v4l2/v4l2_camera.cpp
+++ b/src/v4l2/v4l2_camera.cpp
@@ -119,11 +119,18 @@ int V4L2Camera::configure(StreamConfiguration *streamConfigOut,
 		LOG(V4L2Compat, Debug) << "Configuration invalid";
 		return -EINVAL;
 	}
-	if (validation == CameraConfiguration::Adjusted)
+	if (validation == CameraConfiguration::Adjusted) {
 		LOG(V4L2Compat, Debug) << "Configuration adjusted";
+		validation = config_->validate();
+		if (validation != CameraConfiguration::Valid) {
+			LOG(V4L2Compat, Error)
+				<< "Configuration adjusted but not valid";
+			return -EINVAL;
+		}
+	}
 
-	LOG(V4L2Compat, Debug) << "Validated configuration is: "
-			      << streamConfig.toString();
+	LOG(V4L2Compat, Debug)
+		<< "Validated configuration is: " << streamConfig.toString();
 
 	int ret = camera_->configure(config_.get());
 	if (ret < 0)
