diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 343f8cb2c7ed..31107e1338bf 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -191,7 +191,8 @@ public:
 
 	~RPiCameraData()
 	{
-		freeBuffers();
+		if (buffersAllocated_)
+			freeBuffers();
 	}
 
 	void freeBuffers();
