diff --git a/Calorimeter/CaloConditions/CMakeLists.txt b/Calorimeter/CaloConditions/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..357f157a44932d0894826eb9c57729c39457a378
--- /dev/null
+++ b/Calorimeter/CaloConditions/CMakeLists.txt
@@ -0,0 +1,45 @@
+################################################################################
+# Package: CaloConditions
+################################################################################
+
+# Declare the package name:
+atlas_subdir( CaloConditions )
+
+# Declare the package's dependencies:
+atlas_depends_on_subdirs( PUBLIC
+                          Control/CLIDSvc
+                          Control/CxxUtils
+                          Control/SGTools
+                          DetectorDescription/Identifier
+                          GaudiKernel
+                          PRIVATE
+                          AtlasTest/TestTools
+                          TestPolicy )
+
+# External dependencies:
+find_package( Boost COMPONENTS filesystem thread system )
+find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
+
+# Component(s) in the package:
+atlas_add_library( CaloConditions
+                   src/*.cxx
+                   PUBLIC_HEADERS CaloConditions
+                   PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
+                   LINK_LIBRARIES CxxUtils SGTools Identifier GaudiKernel
+                   PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} TestTools )
+
+atlas_add_dictionary( CaloConditionsDict
+                      CaloConditions/CaloConditionsDict.h
+                      CaloConditions/selection.xml
+                      INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
+                      LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} CxxUtils SGTools Identifier GaudiKernel TestTools CaloConditions )
+
+atlas_add_test( ToolConstants_test
+                SOURCES
+                test/ToolConstants_test.cxx
+                INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS}
+                LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} CxxUtils SGTools Identifier GaudiKernel TestTools CaloConditions )
+
+# Install files from the package:
+atlas_install_joboptions( share/*.py )
+
diff --git a/Calorimeter/CaloConditions/CaloConditions/CaloBadChannel.h b/Calorimeter/CaloConditions/CaloConditions/CaloBadChannel.h
index 404b32114d9f626dc91f26a6269968b74a8a48e3..07d639d123946b4d00dd4f7fa6cb63ef834ddca9 100644
--- a/Calorimeter/CaloConditions/CaloConditions/CaloBadChannel.h
+++ b/Calorimeter/CaloConditions/CaloConditions/CaloBadChannel.h
@@ -19,7 +19,9 @@ class CaloBadChannel {
   CaloBadChannel(const CaloBadChannel& rBad) {m_word=rBad.m_word;}
   CaloBadChannel(const CaloBadChannel* pBad) {m_word=pBad->m_word;}
   CaloBadChannel& operator= (const CaloBadChannel& rBad) {
-    m_word = rBad.m_word;
+    if (this != &rBad) {
+      m_word = rBad.m_word;
+    }
     return *this;
   }
 
diff --git a/Calorimeter/CaloConditions/CaloConditions/CaloEMFrac.h b/Calorimeter/CaloConditions/CaloConditions/CaloEMFrac.h
index 158f6435894e217686bd3b7500666d7df2035565..6c0934e4474b5dc8b11a7ea80b577644a0f094d4 100755
--- a/Calorimeter/CaloConditions/CaloConditions/CaloEMFrac.h
+++ b/Calorimeter/CaloConditions/CaloConditions/CaloEMFrac.h
@@ -59,7 +59,7 @@ public:
   /**
    * @brief Default Constructor.  (Only intended for use by persistency.)
    */
-  CaloEMFrac() {};
+  CaloEMFrac();
 
 
   /**
diff --git a/Calorimeter/CaloConditions/CaloConditions/CaloHadWeight.h b/Calorimeter/CaloConditions/CaloConditions/CaloHadWeight.h
index d9cf7e0094a917786294d75b5da3052b45fd77ec..59470ec88b04754061f27442d2b186e5ac10303c 100755
--- a/Calorimeter/CaloConditions/CaloConditions/CaloHadWeight.h
+++ b/Calorimeter/CaloConditions/CaloConditions/CaloHadWeight.h
@@ -28,7 +28,7 @@ public:
   };
 
   //** Default Constructor
-  CaloHadWeight() {};
+  CaloHadWeight();
 
   CaloHadWeight(const int   & nBinEta, 
 		const float & MinEta, 
diff --git a/Calorimeter/CaloConditions/CaloConditions/selection.xml b/Calorimeter/CaloConditions/CaloConditions/selection.xml
index a8f2d50a8da5b4c2ebb28eef677a45ace511ab13..cf2525cb27a5d203d912e0872d98fd742576d46b 100755
--- a/Calorimeter/CaloConditions/CaloConditions/selection.xml
+++ b/Calorimeter/CaloConditions/CaloConditions/selection.xml
@@ -3,6 +3,7 @@
   <class name="CaloRec::ToolConstants" id="5A73ABF8-5095-405B-A296-3435BB52A5FD" />
   <class name="CaloRec::Arrayrep" />  
   <class name="std::map<std::string, CaloRec::Arrayrep>" />
+  <class name="std::pair<std::string, CaloRec::Arrayrep>" />
 
 
   <class name="CaloRec::CaloCellFactor" id="F2906C3B-DB35-4026-8AA4-D57E4B41288D" />
diff --git a/Calorimeter/CaloConditions/src/CaloEMFrac.cxx b/Calorimeter/CaloConditions/src/CaloEMFrac.cxx
index 18e723f08a58b7805f33a9c04ab598527fb137c6..3553a4f18069419dcfd12267371e09946e4c101a 100755
--- a/Calorimeter/CaloConditions/src/CaloEMFrac.cxx
+++ b/Calorimeter/CaloConditions/src/CaloEMFrac.cxx
@@ -12,6 +12,26 @@
 #include "CaloConditions/CaloEMFrac.h"
 
 
+/**
+ * @brief Default Constructor.  (Only intended for use by persistency.)
+ */
+CaloEMFrac::CaloEMFrac()
+  : m_nBinEta(0),
+    m_nBinLogEClus(0),
+    m_nBinLogEDens(0),
+    m_nBinLogDepth(0),
+    m_MinEta(0),
+    m_MinLogEClus(0),
+    m_MinLogEDens(0),
+    m_MinLogDepth(0),
+    m_MaxEta(0),
+    m_MaxLogEClus(0),
+    m_MaxLogEDens(0),
+    m_MaxLogDepth(0)
+{
+}
+
+
 /**
  * @brief Constructor.
  * @param nBinEta      Number of bins in eta.
diff --git a/Calorimeter/CaloConditions/src/CaloHadDMCoeff.cxx b/Calorimeter/CaloConditions/src/CaloHadDMCoeff.cxx
index 75f819133dded95f2263290fe58a10916ecbe5a1..75985ac7336bda9fb061efb9134344c99ee3d271 100755
--- a/Calorimeter/CaloConditions/src/CaloHadDMCoeff.cxx
+++ b/Calorimeter/CaloConditions/src/CaloHadDMCoeff.cxx
@@ -160,7 +160,7 @@ void CaloHadDMCoeff::PrintData(FILE *fout) const
    "# indx   ifrac iener ieta   frac ener eta   pars[]\n"
    "#\n\n"};
    fprintf(fout,"%s",comments);
-   int m_indx = 0;
+   int indx = 0;
    for(int i_zone=0; i_zone < (int)m_DMAreaSet.size(); i_zone++){
       const HadDMArea *area = &m_DMAreaSet[i_zone];
       fprintf(fout," %d %d %s\n",area->m_indx, area->m_is_on, area->m_title.data());
@@ -176,7 +176,7 @@ void CaloHadDMCoeff::PrintData(FILE *fout) const
                float cls_eta = area->m_EtaBins[i_eta]+0.01;
                const HadDMCoeff *vv = getHadDMCoeff(i_zone, cls_emfrac, cls_ener, cls_eta);
                fprintf(fout,"%4d   %2d %2d %2d   %6.3f %6.3g %6.3f    ",
-               m_indx, i_frac,i_ener, i_eta, area->m_FracBins[i_frac], area->m_EnerBins[i_ener], area->m_EtaBins[i_eta]);
+               indx, i_frac,i_ener, i_eta, area->m_FracBins[i_frac], area->m_EnerBins[i_ener], area->m_EtaBins[i_eta]);
                for(int i_par=0; i_par<area->m_nPars; i_par++){
                   if(area->m_indx!=10) {
                      fprintf(fout,"%10.4f ",(*vv)[i_par]);
@@ -184,7 +184,7 @@ void CaloHadDMCoeff::PrintData(FILE *fout) const
                      fprintf(fout,"%10.7f ",(*vv)[i_par]);                  
                   }
                } // i_par
-               m_indx++;
+               indx++;
                fprintf(fout,"\n");
             } // i_eta
          } // i_ener
diff --git a/Calorimeter/CaloConditions/src/CaloHadWeight.cxx b/Calorimeter/CaloConditions/src/CaloHadWeight.cxx
index 7eb73f774f0cb536da9c934b6514375c16c129ca..8fae31cc807b165e626f5a47bfb527619a077660 100755
--- a/Calorimeter/CaloConditions/src/CaloHadWeight.cxx
+++ b/Calorimeter/CaloConditions/src/CaloHadWeight.cxx
@@ -5,6 +5,24 @@
 #include "CaloConditions/CaloHadWeight.h"
 
 
+//** Default Constructor
+CaloHadWeight::CaloHadWeight()
+  : m_nBinEta(0),
+    m_nBinSampling(0),
+    m_nBinLogEClus(0),
+    m_nBinLogEDensCell(0),
+    m_MinEta(0),
+    m_MinSampling(0),
+    m_MinLogEClus(0),
+    m_MinLogEDensCell(0),
+    m_MaxEta(0),
+    m_MaxSampling(0),
+    m_MaxLogEClus(0),
+    m_MaxLogEDensCell(0)
+{
+}
+
+
 CaloHadWeight::CaloHadWeight(
 			     const int   & nBinEta, 
 			     const float & MinEta,