diff --git a/libwccl/ops/operator.h b/libwccl/ops/operator.h
index f759ec63b23e3831a1e4b354ce72c924f6636337..0ce80132cc004bfd0a00c1c30b4ff9fb4a1c25dc 100644
--- a/libwccl/ops/operator.h
+++ b/libwccl/ops/operator.h
@@ -236,7 +236,7 @@ boost::shared_ptr<FunctionalOperator> FunctionalOperator::clone_clean_ptr() cons
 
 template <class T> inline
 Operator<T>::Operator(
-		const boost::shared_ptr<Function<T> >& body,
+		const boost::shared_ptr<const Function<T> >& body,
 		const Variables &variables)
 	: FunctionalOperator(variables),
 	  function_body_(body)