diff --git a/libwccl/variables.h b/libwccl/variables.h
index ef7ede505674226c8c9c02d544019e2e03deb0de..3dd36c11e1ea6a456d092f04d978e23482c444fb 100644
--- a/libwccl/variables.h
+++ b/libwccl/variables.h
@@ -208,7 +208,7 @@ public:
 	 * shared pointers themselves cannot, use put etc. for that.
 	 */
 	template<typename T>
-	const typename detail::Vmap<T>::map_t get_all() const {
+	const typename detail::Vmap<T>::map_t& get_all() const {
 		BOOST_MPL_ASSERT(( boost::mpl::count<types, T> ));
 		return detail::Vmap<T>::map_;
 	}