diff --git a/src/THcHodoscope.cxx b/src/THcHodoscope.cxx
index 5c417dcb9e3200d338b68788cdc90446a0efe64e..971fc4c3f401ff82cc76688ae3f37b55c717625f 100644
--- a/src/THcHodoscope.cxx
+++ b/src/THcHodoscope.cxx
@@ -330,15 +330,15 @@ Int_t THcHodoscope::ReadDatabase( const TDatime& date )
 
 
   DBRequest list[]={
-    {Form("%sstart_time_center",prefix),&fStartTimeCenter, kDouble},
-    {Form("%sstart_time_slop",prefix) , &fStartTimeSlop, kDouble},
-    {Form("%sscin_tdc_to_time",prefix), &fScinTdcToTime, kDouble},
-    {Form("%sscin_tdc_min",prefix), &fScinTdcMin, kDouble},
-    {Form("%sscin_tdc_max",prefix), &fScinTdcMax, kDouble},
-    {Form("%stof_tolerance",prefix), &fTofTolerance, kDouble},
+    {"start_time_center", &fStartTimeCenter, kDouble},
+    {"start_time_slop", &fStartTimeSlop, kDouble},
+    {"scin_tdc_to_time", &fScinTdcToTime, kDouble},
+    {"scin_tdc_min", &fScinTdcMin, kDouble},
+    {"scin_tdc_max", &fScinTdcMax, kDouble},
+    {"tof_tolerance", &fTofTolerance, kDouble},
     {0}
   };
-  gHcParms->LoadParmValues((DBRequest*)&list);
+  gHcParms->LoadParmValues((DBRequest*)&list,prefix);
   cout <<"******* Testing *** "<<fStartTimeCenter<<" "<<fStartTimeSlop;
   cout <<" "<<fScinTdcToTime;
   cout <<" "<<fScinTdcMin;
diff --git a/src/THcParmList.cxx b/src/THcParmList.cxx
index 624a673544cc3d8656290149282bca1ca1e8c39e..aa19cf192a11a732b822651d1e819bd14a7d0936 100644
--- a/src/THcParmList.cxx
+++ b/src/THcParmList.cxx
@@ -343,7 +343,7 @@ void THcParmList::Load( const char* fname, Int_t RunNumber )
 
 }
 //_____________________________________________________________________________
-Int_t THcParmList::LoadParmValues(const DBRequest* list)
+Int_t THcParmList::LoadParmValues(const DBRequest* list, const char* prefix)
 {
   // Load a number of entries from the database.
   // For array entries, the number of elements to be read in
@@ -355,10 +355,14 @@ Int_t THcParmList::LoadParmValues(const DBRequest* list)
   Int_t cnt=0;
   Int_t this_cnt=0;
 
+  if( !prefix ) prefix = "";
+
   while ( ti && ti->name ) {
+    string keystr(prefix); keystr.append(ti->name);
+    const char* key = keystr.c_str();
     ///    cout <<"Now at "<<ti->name<<endl;
     if (ti->nelem>1) {
-      // it is an array, use the appropriate interface
+      // it is an array, use the appropriateinterface
       switch (ti->type) {
       case (kDouble) :
 	//	this_cnt = GetArray(system,ti->name,static_cast<Double_t*>(ti->var),
@@ -369,37 +373,37 @@ Int_t THcParmList::LoadParmValues(const DBRequest* list)
 	//ti->expected,date);
       break;
     default:
-	Error("THcParmList","Invalid type to read %s",ti->name);
+	Error("THcParmList","Invalid type to read %s",key);
 	break;
       }
 
     } else {
       switch (ti->type) {
       case (kDouble) :
-	if (this->Find(ti->name)) {
-	  *static_cast<Double_t*>(ti->var)=*(Double_t *)this->Find(ti->name)->GetValuePointer();
+	if (this->Find(key)) {
+	  *static_cast<Double_t*>(ti->var)=*(Double_t *)this->Find(key)->GetValuePointer();
 	} else {
-	  cout << "*** ERROR!!! Could not find " << ti->name << " in the list of variables! ***" << endl;
+	  cout << "*** ERROR!!! Could not find " << key << " in the list of variables! ***" << endl;
 	}
 	this_cnt=1;
 
 	break;
       case (kInt) :
-	if (this->Find(ti->name)) {
-	  *static_cast<Int_t*>(ti->var)=*(Int_t *)this->Find(ti->name)->GetValuePointer();
+	if (this->Find(key)) {
+	  *static_cast<Int_t*>(ti->var)=*(Int_t *)this->Find(key)->GetValuePointer();
 	} else {
-	  cout << "*** ERROR!!! Could not find " << ti->name << " in the list of variables! ***" << endl;
+	  cout << "*** ERROR!!! Could not find " << key << " in the list of variables! ***" << endl;
 	}
 	this_cnt=1;
 	break;
       default:
-	Error("THcParmList","Invalid type to read %s",ti->name);
+	Error("THcParmList","Invalid type to read %s",key);
 	break;
       }
     }
     if (this_cnt<=0) {
       if ( !ti->optional ) {
-	Fatal("THcParmList","Could not find %s in database!",ti->name);
+	Fatal("THcParmList","Could not find %s in database!",key);
       }
     }
     cnt += this_cnt;
diff --git a/src/THcParmList.h b/src/THcParmList.h
index 9cd2c73945267d0558daaee195c5367d1e439517..5ca753dd2fa629f015352f7309a2752e15838581 100644
--- a/src/THcParmList.h
+++ b/src/THcParmList.h
@@ -35,7 +35,7 @@ public:
     TextList->Remove(name);
   }
 
-  Int_t LoadParmValues(const DBRequest* list); // assign values to the variables in list
+  Int_t LoadParmValues(const DBRequest* list, const char* prefix=""); // assign values to the variables in list
 
 private: