diff --git a/swig/libcclvalue.i b/swig/libcclvalue.i
index 62462210fbce71b3286b349fcd6916370eb73ef6..4a62b2132bf48610ba8bd2aae8153c418402795c 100644
--- a/swig/libcclvalue.i
+++ b/swig/libcclvalue.i
@@ -7,25 +7,32 @@
 %}
 
 %include "std_string.i"
-%include "boost_shared_ptr.i"
+%include "libcorpus/libcorpustagset.i"
+
+%nodefaultctor Wccl::Value;
 
 namespace Wccl {
   class Value {
   public:
-    static const char* type_name;
-
+    static const char type_name[56];
     virtual const char* get_type_name() const;
+
+    /* --------------------------------------------------------------------- */
+
     virtual ~Value();
 
+    /* --------------------------------------------------------------------- */
+
     virtual std::string make_var_repr(const std::string&) const = 0;
+
+    /* --------------------------------------------------------------------- */
+
     virtual std::string to_string(const Corpus2::Tagset& /*tagset*/) const;
     virtual std::string to_raw_string() const = 0;
   };
-}
 
-// %template(BoolSharedPtr) boost::shared_ptr<Wccl::Value>;
+}
 
-using namespace boost;
 using namespace std;
 using namespace Wccl;