diff --git a/src/lc-compliance/single_stream.cpp b/src/lc-compliance/single_stream.cpp
index 8318b42f42d6..6f1c259547a7 100644
--- a/src/lc-compliance/single_stream.cpp
+++ b/src/lc-compliance/single_stream.cpp
@@ -12,6 +12,13 @@
 
 using namespace libcamera;
 
+static const std::vector<std::pair<std::string, StreamRole>> roles = {
+	{ "raw", Raw },
+	{ "still", StillCapture },
+	{ "video", VideoRecording },
+	{ "viewfinder", Viewfinder },
+};
+
 Results::Result testRequestBalance(std::shared_ptr<Camera> camera,
 				   StreamRole role, unsigned int startCycles,
 				   unsigned int numRequests)
@@ -33,6 +40,25 @@ Results::Result testRequestBalance(std::shared_ptr<Camera> camera,
 		std::to_string(startCycles) + " start cycles" };
 }
 
+Results::Result testMultipleConfigures(std::shared_ptr<Camera> camera,
+				       StreamRole role, unsigned int numRequests)
+{
+	Results::Result ret;
+
+	SimpleCaptureBalanced capture(camera);
+
+	for (auto r: roles) {
+		ret = capture.configure(r.second);
+		if (ret.first == Results::Fail)
+			return ret;
+	}
+	ret = capture.configure(role);
+	if (ret.first != Results::Pass)
+		return ret;
+
+	return capture.capture(numRequests);
+}
+
 Results::Result testRequestUnbalance(std::shared_ptr<Camera> camera,
 				     StreamRole role, unsigned int numRequests)
 {
@@ -47,15 +73,9 @@ Results::Result testRequestUnbalance(std::shared_ptr<Camera> camera,
 
 Results testSingleStream(std::shared_ptr<Camera> camera)
 {
-	static const std::vector<std::pair<std::string, StreamRole>> roles = {
-		{ "raw", Raw },
-		{ "still", StillCapture },
-		{ "video", VideoRecording },
-		{ "viewfinder", Viewfinder },
-	};
 	static const std::vector<unsigned int> numRequests = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 };
 
-	Results results(numRequests.size() * roles.size() * 3);
+	Results results(numRequests.size() * roles.size() * 3 + roles.size());
 
 	for (const auto &role : roles) {
 		std::cout << "= Test role " << role.first << std::endl;
@@ -91,6 +111,16 @@ Results testSingleStream(std::shared_ptr<Camera> camera)
 		std::cout << "* Test unbalanced stop" << std::endl;
 		for (unsigned int num : numRequests)
 			results.add(testRequestUnbalance(camera, role.second, num));
+
+		/*
+		 * Test multiple configure()
+		 *
+		 * Makes sure that the camera supports being configured multiple
+		 * times, with only the last one taking effect, before starting
+		 * to capture.
+		 */
+		std::cout << "* Test multiple configure()" << std::endl;
+		results.add(testMultipleConfigures(camera, role.second, numRequests.back()));
 	}
 
 	return results;
