diff --git a/libwccl/ops/operator.h b/libwccl/ops/operator.h
index 19dc17e2ecb51e3d9b7c9d35855cccd42c39f39b..6ac04d949b1b9eedbac4daa1358442b2f228693a 100644
--- a/libwccl/ops/operator.h
+++ b/libwccl/ops/operator.h
@@ -50,7 +50,7 @@ protected:
  * @todo need to change copying of Variables once a clone method is available for them.
  */
 template <class T>
-class Operator : public FunctionalOperator, public detail::PtrCleanCloneable<Operator<T> >
+class Operator : public FunctionalOperator
 {
 public:
 	Operator(const boost::shared_ptr<Function<T> >& body, const Variables& variables);
diff --git a/libwccl/ops/parsedexpression.h b/libwccl/ops/parsedexpression.h
index 532d342dfb6d18949901c2f0ebf22fc58b69a24d..efe990569a8628a2ed0717e39c103b29d9692a71 100644
--- a/libwccl/ops/parsedexpression.h
+++ b/libwccl/ops/parsedexpression.h
@@ -6,31 +6,6 @@
 
 namespace Wccl {
 
-namespace detail {
-
-template<class T>
-class PtrCloneable
-{
-public:
-	/**
-	 * @returns Shared pointer to a copy of the object.
-	 */
-	boost::shared_ptr<T> clone_ptr() const;
-};
-
-template<class T>
-class PtrCleanCloneable : public PtrCloneable<T>
-{
-public:
-	/**
-	 * @returns Shared pointer to a copy of the object.
-	 * The copy has "clean" method called for convenience.
-	 */
-	boost::shared_ptr<T> clone_clean_ptr() const;
-};
-
-}
-
 /**
  * Abstract base class for WCCL expressions coming from parser and thus
  * having a set of variables.