diff --git a/.gitignore b/.gitignore
index 754c69d76d18a3c226a93b3ddef6454bfdad477a..844fd863a1f3c9e1e59df8be77b0f7e2ea58ca7e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,7 @@ config.log
 *.so
 *.so.*
 *.os
+*.pcm
 \#*\#
 
 # THtml generated documentation directory
diff --git a/Makefile b/Makefile
index 8dfcd9f5910f8eefc31b1b67881e6faab8ec11d0..2a2623d0c643fd0c30b905cdf7c7556484739838 100644
--- a/Makefile
+++ b/Makefile
@@ -70,12 +70,16 @@ INCDIRS  = $(wildcard $(addprefix $(ANALYZER)/, include src hana_decode)) $(shel
 
 #------------------------------------------------------------------------------
 # Check that root version is new enough (>= 5.32) by requiring
+# root-config --version to be version 6 or
 # root-config --svn-revision to be >= 43166
 
-GOODROOTVERSION := $(shell expr `root-config --svn-revision` \>= 43166)
+GOODROOTVERSION6 := $(shell expr `root-config --version` \>= 6.06)
 
-ifneq ($(GOODROOTVERSION),1)
-  $(error ROOT version 5.32 or later required)
+ifneq ($(GOODROOTVERSION6),1)
+  GOODROOTVERSION := $(shell expr `root-config --svn-revision` \>= 43166)
+  ifneq ($(GOODROOTVERSION),1)
+    $(error ROOT version 5.32 or later required)
+  endif
 endif
 
 #------------------------------------------------------------------------------
diff --git a/examples/hodtest.C b/examples/hodtest.C
index 68ced8d12bb4203f2602d894cdd1e5f4d729d233..9c798f9bb1acb81f01086986dd70cd313912567b 100644
--- a/examples/hodtest.C
+++ b/examples/hodtest.C
@@ -6,7 +6,7 @@
   //
   
   Int_t RunNumber=50017;
-  char* RunFileNamePattern="daq04_%d.log.0";
+  char RunFileNamePattern[]="daq04_%d.log.0";
   
   gHcParms->Define("gen_run_number", "Run Number", RunNumber);
   gHcParms->AddString("g_ctp_database_filename", "DBASE/test.database");
diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx
index 12094698a9ef6444a1862ac8049b71a4d63cfaa3..4f1ef7eb7188252f9d83956e83b9cddc122f6c1a 100644
--- a/src/THcScalerEvtHandler.cxx
+++ b/src/THcScalerEvtHandler.cxx
@@ -116,7 +116,7 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
     tinfo = name + "/D";
     fScalerTree->Branch(name.Data(), &evcount, tinfo.Data(), 4000);
 
-    for (UInt_t i = 0; i < scalerloc.size(); i++) {
+    for (size_t i = 0; i < scalerloc.size(); i++) {
       name = scalerloc[i]->name;
       tinfo = name + "/D";
       fScalerTree->Branch(name.Data(), &dvars[i], tinfo.Data(), 4000);
@@ -151,7 +151,7 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
       		*fDebugFile << "p  and  pstop  "<<j++<<"   "<<p<<"   "<<pstop<<"   "<<hex<<*p<<"   "<<dec<<endl;
     }
     nskip = 1;
-    for (UInt_t j=0; j<scalers.size(); j++) {
+    for (size_t j=0; j<scalers.size(); j++) {
       nskip = scalers[j]->Decode(p);
       if (fDebugFile && nskip > 1) {
 	*fDebugFile << "\n===== Scaler # "<<j<<"     fName = "<<fName<<"   nskip = "<<nskip<<endl;
@@ -178,10 +178,10 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
   // The correspondance between dvars and the scaler and the channel
   // will be driven by a scaler.map file  -- later
 
-  for (UInt_t i = 0; i < scalerloc.size(); i++) {
-    UInt_t ivar = scalerloc[i]->ivar;
-    UInt_t isca = scalerloc[i]->iscaler;
-    UInt_t ichan = scalerloc[i]->ichan;
+  for (size_t i = 0; i < scalerloc.size(); i++) {
+    size_t ivar = scalerloc[i]->ivar;
+    size_t isca = scalerloc[i]->iscaler;
+    size_t ichan = scalerloc[i]->ichan;
     if (evcount==0) {
     	if (fDebugFile) *fDebugFile << "Debug dvarsFirst "<<i<<"   "<<ivar<<"  "<<isca<<"  "<<ichan<<endl;
     	if ((ivar >= 0 && ivar < scalerloc.size()) &&
@@ -209,7 +209,7 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
 
   evcount = evcount + 1.0;
 
-  for (UInt_t j=0; j<scalers.size(); j++) scalers[j]->Clear("");
+  for (size_t j=0; j<scalers.size(); j++) scalers[j]->Clear("");
 
   if (fDebugFile) *fDebugFile << "scaler tree ptr  "<<fScalerTree<<endl;
 
@@ -263,7 +263,7 @@ THaAnalysisObject::EStatus THcScalerEvtHandler::Init(const TDatime& date)
       pos1 = FindNoCase(dbline[0],svariable);
       if (pos1 != minus1 && dbline.size()>4) {
 	string sdesc = "";
-	for (UInt_t j=5; j<dbline.size(); j++) sdesc = sdesc+" "+dbline[j];
+	for (size_t j=5; j<dbline.size(); j++) sdesc = sdesc+" "+dbline[j];
 	Int_t isca = atoi(dbline[1].c_str());
 	Int_t ichan = atoi(dbline[2].c_str());
 	Int_t ikind = atoi(dbline[3].c_str());
@@ -320,7 +320,7 @@ THaAnalysisObject::EStatus THcScalerEvtHandler::Init(const TDatime& date)
   }
   // can't compare UInt_t to Int_t (compiler warning), so do this
   nscalers=0;
-  for (UInt_t i=0; i<scalers.size(); i++) nscalers++;
+  for (size_t i=0; i<scalers.size(); i++) nscalers++;
   // need to do LoadNormScaler after scalers created and if fNormIdx found
   if (fDebugFile) *fDebugFile <<"fNormIdx = "<<fNormIdx<<endl;
   if ((fNormIdx >= 0) && fNormIdx < nscalers) {
@@ -380,7 +380,7 @@ THaAnalysisObject::EStatus THcScalerEvtHandler::Init(const TDatime& date)
 #endif
 
   if(fDebugFile) *fDebugFile << "THcScalerEvtHandler:: Name of scaler bank "<<fName<<endl;
-  for (UInt_t i=0; i<scalers.size(); i++) {
+  for (size_t i=0; i<scalers.size(); i++) {
     if(fDebugFile) {
       *fDebugFile << "Scaler  #  "<<i<<endl;
       scalers[i]->SetDebugFile(fDebugFile);
@@ -396,7 +396,7 @@ void THcScalerEvtHandler::AddVars(TString name, TString desc, Int_t iscal,
   // need to add fName here to make it a unique variable.  (Left vs Right HRS, for example)
   TString name1 = fName + name;
   TString desc1 = fName + desc;
-  ScalerLoc *loc = new ScalerLoc(name1, desc1, iscal, ichan, ikind);
+  HCScalerLoc *loc = new HCScalerLoc(name1, desc1, iscal, ichan, ikind);
   loc->ivar = scalerloc.size();  // ivar will be the pointer to the dvars array.
   scalerloc.push_back(loc);
 }
@@ -418,7 +418,7 @@ void THcScalerEvtHandler::DefVars()
   }
   if(fDebugFile) *fDebugFile << "THcScalerEvtHandler:: scalerloc size "<<scalerloc.size()<<endl;
   const Int_t* count = 0;
-  for (UInt_t i = 0; i < scalerloc.size(); i++) {
+  for (size_t i = 0; i < scalerloc.size(); i++) {
     gHaVars->DefineByType(scalerloc[i]->name.Data(), scalerloc[i]->description.Data(),
 			  &dvars[i], kDouble, count);
     //gHaVars->DefineByType(scalerloc[i]->name.Data(), scalerloc[i]->description.Data(),
diff --git a/src/THcScalerEvtHandler.h b/src/THcScalerEvtHandler.h
index 7e596ecd179a946c756b0ae9126caa780d372465..8197591178dbf148005ee6008f60f0ef368f6c93 100644
--- a/src/THcScalerEvtHandler.h
+++ b/src/THcScalerEvtHandler.h
@@ -17,11 +17,11 @@
 #include "TTree.h"
 #include "TString.h"  
 
-class ScalerLoc { // Utility class used by THaScalerEvtHandler
+class HCScalerLoc { // Utility class used by THaScalerEvtHandler
  public:
- ScalerLoc(TString nm, TString desc, Int_t isc, Int_t ich, Int_t iki) :
+ HCScalerLoc(TString nm, TString desc, Int_t isc, Int_t ich, Int_t iki) :
    name(nm), description(desc), iscaler(isc), ichan(ich), ikind(iki) { };
-  ~ScalerLoc();
+  ~HCScalerLoc();
   TString name, description;
   UInt_t iscaler, ichan, ivar, ikind;
 };
@@ -45,7 +45,7 @@ private:
    static size_t FindNoCase(const std::string& sdata, const std::string& skey);
 
    std::vector<Decoder::GenScaler*> scalers;
-   std::vector<ScalerLoc*> scalerloc;
+   std::vector<HCScalerLoc*> scalerloc;
    Double_t evcount;
    UInt_t *rdata;
    std::vector<Int_t> index;