diff --git a/swig/libcclfunctionaloperator.i b/swig/libcclfunctionaloperator.i
index a36c72d8d2d750fcbdaea8354c411cd510e2bce4..84802952519d8e91a834b5d29c3d097c3027dded 100644
--- a/swig/libcclfunctionaloperator.i
+++ b/swig/libcclfunctionaloperator.i
@@ -14,10 +14,14 @@
 %include "std_string.i"
 %include "boost_shared_ptr.i"
 
+%template(ValuePtr) boost::shared_ptr<Wccl::Value>;
+
 namespace Wccl {
   class FunctionalOperator : public ParsedExpression {
   public:
-    // virtual boost::shared_ptr<const Value> base_apply(const SentenceContext& sc) = 0;
+    virtual boost::shared_ptr<const Value> base_apply(const SentenceContext& sc) = 0;
+
+    /* --------------------------------------------------------------------- */
     boost::shared_ptr<FunctionalOperator> clone_ptr() const;
     boost::shared_ptr<FunctionalOperator> clone_clean_ptr() const;
 
@@ -27,8 +31,6 @@ namespace Wccl {
   };
 }
 
-%template (FunctionalOperatorSharedPtr) boost::shared_ptr<Wccl::FunctionalOperator>;
-
 using namespace boost;
 using namespace std;
 using namespace Wccl;