diff --git a/swig/libcclmatch.i b/swig/libcclmatch.i
index b1a0ccda066a1044c3bd32946799af8b09b8f99c..f64cefe2c8b71ad4ee145af6703b441a6d2d12ca 100644
--- a/swig/libcclmatch.i
+++ b/swig/libcclmatch.i
@@ -14,11 +14,11 @@
 %include "libcorpus/libcorpusannotatedsentence.i"
 
 %include "std_string.i"
-%include "boost_shared_ptr.i"
+// %include "boost_shared_ptr.i"
 
 %feature("notabstract") Wccl::Match;
 
-%template (MatchPtr) boost::shared_ptr<Wccl::Match>;
+// %template (MatchPtr) boost::shared_ptr<Wccl::Match>;
 
 namespace Wccl {
   class Match : public Value {
diff --git a/swig/libcclmatchdata.i b/swig/libcclmatchdata.i
index e250ff2d0d4cb2b03ff4b276988c27d97c197c86..f25d53a5b15e14c4282d9bbf9c324e6bbbdad7b3 100644
--- a/swig/libcclmatchdata.i
+++ b/swig/libcclmatchdata.i
@@ -6,7 +6,6 @@
   #include <libwccl/values/matchdata.h>
 %}
 
-
 %include "libcclmatch.i"
 %include "libcorpus/libcorpusannotatedsentence.i"
 
diff --git a/swig/libcclvariables.i b/swig/libcclvariables.i
index 642100df751354fcc26f42ccaca9ee7343fceacf..3048feb24eda8137896233e485f90eae4da0f015 100644
--- a/swig/libcclvariables.i
+++ b/swig/libcclvariables.i
@@ -23,6 +23,13 @@
 %template(TSetPtr) boost::shared_ptr<Wccl::TSet>;
 %template(MatchPtr) boost::shared_ptr<Wccl::Match>;
 %template(VariablesPtr) boost::shared_ptr<Wccl::Variables>;
+%template(ConstValuePtr) boost::shared_ptr<Wccl::Value const>;
+%template(ConstBoolPtr) boost::shared_ptr<Wccl::Bool const>;
+%template(ConstPositionPtr) boost::shared_ptr<Wccl::Position const>;
+%template(ConstStrSetPtr) boost::shared_ptr<Wccl::StrSet const>;
+%template(ConstTSetPtr) boost::shared_ptr<Wccl::TSet const>;
+%template(ConstMatchPtr) boost::shared_ptr<Wccl::Match const>;
+%template(ConstVariablesPtr) boost::shared_ptr<Wccl::Variables const>;
 
 namespace Wccl {
   /* ----------------------------------------------------------------------- */