diff --git a/include/libcamera/base/signal.h b/include/libcamera/base/signal.h
index ed1d81ea5c..2bac5a9832 100644
--- a/include/libcamera/base/signal.h
+++ b/include/libcamera/base/signal.h
@@ -37,6 +37,8 @@ private:
 template<typename... Args>
 class Signal : public SignalBase
 {
+	static_assert((!std::is_rvalue_reference_v<Args> && ...));
+
 public:
 	~Signal()
 	{
