diff --git a/src/THcFormula.cxx b/src/THcFormula.cxx
index dd97ae79cb9d982cda35786863a61b4bbe1d9c54..210e68121c3ac94c2d021fdd79e0c4cb8e874409 100644
--- a/src/THcFormula.cxx
+++ b/src/THcFormula.cxx
@@ -85,15 +85,19 @@ THcFormula::THcFormula(const char* name, const char* expression,
 THcFormula& THcFormula::operator=( const THcFormula& rhs )
 {
   if( this != &rhs ) {
-    TFormula::operator=(rhs);
+    THaFormula::operator=(rhs);
     fParmList = rhs.fParmList;
-    fVarList = rhs.fVarList;
-    fCutList = rhs.fCutList;
-    fInstance = 0;
   }
   return *this;
 }
 
+//_____________________________________________________________________________
+THcFormula::THcFormula( const THcFormula& rhs ) :
+  THaFormula(rhs), fParmList(rhs.fParmList)
+{
+  // Copy ctor
+}
+
 //_____________________________________________________________________________
 THcFormula::~THcFormula()
 {
diff --git a/src/THcFormula.h b/src/THcFormula.h
index a75a020aeb703acd442376b14e29991dcb604970..5bfd6aad15dd47325145d09018036e862cdc6a64 100644
--- a/src/THcFormula.h
+++ b/src/THcFormula.h
@@ -19,6 +19,7 @@ public:
   THcFormula( const char* name, const char* formula,
 	      const THcParmList*, const THaVarList*,
 	      const THaCutList* clst);
+  THcFormula( const THcFormula& rhs );
   THcFormula& operator=( const THcFormula& rhs );
   virtual ~THcFormula();