diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
index 068afd58762f..079f848aec79 100644
--- a/include/libcamera/camera_manager.h
+++ b/include/libcamera/camera_manager.h
@@ -30,7 +30,7 @@ public:
 	int start();
 	void stop();
 
-	const std::vector<std::shared_ptr<Camera>> &cameras() const;
+	std::vector<std::shared_ptr<Camera>> cameras() const;
 	std::shared_ptr<Camera> get(const std::string &name);
 	std::shared_ptr<Camera> get(dev_t devnum);
 
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index e0a07ec557d3..5fc1bba974c6 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -244,7 +244,7 @@ void CameraManager::stop()
  *
  * \return List of all available cameras
  */
-const std::vector<std::shared_ptr<Camera>> &CameraManager::cameras() const
+std::vector<std::shared_ptr<Camera>> CameraManager::cameras() const
 {
 	return p_->cameras_;
 }
