diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index f81a4d15..a2dbc336 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -288,12 +288,12 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe,
 
 	/* Remember at each entity where we came from. */
 	std::unordered_map<MediaEntity *, Entity> parents;
-	queue.push(sensor);
-
 	MediaEntity *entity = nullptr;
 
+	queue.push(sensor);
+
 	while (!queue.empty()) {
-		entity = queue.back();
+		entity = queue.front();
 		queue.pop();
 
 		/* Found the capture device. */
