diff --git a/src/THcRun.cxx b/src/THcRun.cxx
index 025b8d825729f77b322516e22e226961088c6877..4604d070303448457696be2cceef44e4bfc00515 100644
--- a/src/THcRun.cxx
+++ b/src/THcRun.cxx
@@ -21,6 +21,36 @@ THcRun::THcRun( const char* fname, const char* description ) :
   fHcParms = gHcParms;
 }
 
+//_____________________________________________________________________________
+THcRun::THcRun( const THcRun& rhs ) :
+  THcRun(rhs)
+{
+  // Copy ctor
+
+  fHcParms = gHcParms;
+}
+
+//_____________________________________________________________________________
+THcRun::THcRun( const vector<TString>& pathList, const char* filename,
+		const char* description )
+  : THaRun(pathList, filename, description)
+{
+  
+  fHcParms = gHcParms;
+}
+
+//_____________________________________________________________________________
+THcRun& THcRun::operator=(const THaRun& rhs)
+{
+  // Assignment operator.  Not really sure what I (saw) am doing here.
+
+  if (this != &rhs) {
+     THaRun::operator=(rhs);
+     fHcParms = gHcParms;
+  }
+  return *this;
+}
+
 //_____________________________________________________________________________
 THcRun::~THcRun()
 {
diff --git a/src/THcRun.h b/src/THcRun.h
index 1ae98734c5244a5da9ec72663da98909c0c7aeef..fa9eadacca3a0e0c8cce1c5a039acb37f1cfe7b0 100644
--- a/src/THcRun.h
+++ b/src/THcRun.h
@@ -14,10 +14,10 @@ class THcRun : public THaRun {
 
  public:
   THcRun( const char* filename="", const char* description="" );
-  //  THaRun( const THaRun& run );
-  //  THaRun( const std::vector<TString>& pathList, const char* filename,
-  //	  const char* description="" );
-  //  virtual THaRun& operator=( const THaRunBase& rhs );
+  THcRun( const THcRun& run );
+  THcRun( const std::vector<TString>& pathList, const char* filename,
+  	  const char* description="" );
+  virtual THcRun& operator=( const THaRun& rhs );
   virtual ~THcRun();
   virtual void         Print( Option_t* opt="" ) const;
   THcParmList* GetHCParms() const { return fHcParms; }