diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx
index 5e3bdbbab90d967b5f568905d9314f5720a0927d..b2e36906b6010126c9cc97e28712fb9d5631c43f 100644
--- a/src/THcScalerEvtHandler.cxx
+++ b/src/THcScalerEvtHandler.cxx
@@ -143,14 +143,8 @@ Int_t THcScalerEvtHandler::ReadDatabase(const TDatime& date )
     fbcm_Current_Threshold_Index = 0;
     gHcParms->LoadParmValues((DBRequest*)&list2, prefix);
     vector<string> bcm_names = vsplit(bcm_namelist);
-    fBCM_Name = new char* [fNumBCMs];
-    for(Int_t i=0;i<fNumBCMs;i++) {
-      fBCM_Name[i] = new char[bcm_names[i].length()+1];
-      strcpy(fBCM_Name[i], bcm_names[i].c_str());
-      strcat(fBCM_Name[i],".scal");
-      //    cout << fBCM_Gain[i] << " " << fBCM_Offset[i] << " " << fBCM_Name[i] << endl;
-    }
     for(Int_t i=0;i<fNumBCMs;i++) {
+      fBCM_Name.push_back(bcm_names[i]+".scal");
       fBCM_delta_charge[i]=0.;
     }
   }
diff --git a/src/THcScalerEvtHandler.h b/src/THcScalerEvtHandler.h
index cca447e3ccb8f6795a313ad4fc267ed5e78fb613..99bdb49f3b561d7e72b2fa610404062cde60c99a 100644
--- a/src/THcScalerEvtHandler.h
+++ b/src/THcScalerEvtHandler.h
@@ -17,6 +17,8 @@
 #include <set>
 #include "TTree.h"
 #include "TString.h"
+#include <cstring>
+
 
 class HCScalerLoc { // Utility class used by THaScalerEvtHandler
  public:
@@ -62,7 +64,7 @@ private:
    Double_t fbcm_Current_Threshold;
    Double_t fClockFreq;
    Int_t fbcm_Current_Threshold_Index;
-   char** fBCM_Name;
+   std::vector <std::string> fBCM_Name;
    UInt_t evcount;
    Double_t evcountR;
    UInt_t evNumber;