diff --git a/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx b/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx
index 6ab73f642d4093b263850027a95853fc5e340f3c..fe5bf88b8e83cc027a8669ae8b885403a68bcdc3 100644
--- a/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx
+++ b/LArCalorimeter/LArROD/src/LArRawChannelBuilderAlg.cxx
@@ -115,7 +115,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const {
     if (saturated) prov|=0x0400;
 
     if (std::fabs(E)>m_eCutFortQ) {
-      ATH_MSG_VERBOSE("Channel " << m_onlineId->channel_name(id) << " gain " << gain << " above theshold for tQ computation");
+      ATH_MSG_VERBOSE("Channel " << m_onlineId->channel_name(id) << " gain " << gain << " above threshold for tQ computation");
       prov|=0x2000;
 
       //Get time by applying OFC-b coefficients:
@@ -141,6 +141,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const {
 	if (!connected) continue; //No conditions for disconnected channel, who cares?
 	ATH_MSG_ERROR("No valid shape for channel " <<  m_onlineId->channel_name(id) 
 		      << " gain " << gain);
+	ATH_MSG_ERROR("Got size " << fullShape.size() << ", expected at least " << nSamples+firstSample);
 	return StatusCode::FAILURE;
       }
 
@@ -152,6 +153,7 @@ StatusCode LArRawChannelBuilderAlg::execute_r(const EventContext& ctx) const {
 	if (ATH_UNLIKELY(fullshapeDer.size()<nSamples+firstSample)) {
 	  ATH_MSG_ERROR("No valid shape derivative for channel " <<  m_onlineId->channel_name(id) 
 			<< " gain " << gain);
+	  ATH_MSG_ERROR("Got size " << fullshapeDer.size() << ", expected at least " << nSamples+firstSample);
 	  return StatusCode::FAILURE;
 	}
 
diff --git a/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx b/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx
index 1a4aa81cd3c14fd715f5a5dc203623705423b856..1c1cb9e496f918dd22688369680aadb7ede82434 100644
--- a/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx
+++ b/LArCalorimeter/LArRecUtils/src/LArOFCCondAlg.cxx
@@ -221,7 +221,7 @@ StatusCode LArOFCCondAlg::execute() {
         return StatusCode::FAILURE;
     }
 
-    ATH_MSG_INFO("IOV found from intersection for AutoCorrTotal object: "
+    ATH_MSG_INFO("IOV found from intersection for LArOFCCondObj object: "
             << rangeIntersection);
 
     // make output object
@@ -346,6 +346,10 @@ StatusCode LArOFCCondAlg::execute() {
                     //return (m_OFCtmp);
                     //returns an empty vector
                 }
+		if (Shape.size()!=ShapeDer.size()) {
+		  ATH_MSG_ERROR("Got invalid shape object: Size=" << Shape.size() << ", DerSize=" << ShapeDer.size());
+		  return StatusCode::SUCCESS;
+		}
                 //:::::::::::::::::::::::::::::::
                 unsigned int l,c,i; 
                 //:::::::::::::::::::::::::::::::
diff --git a/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h b/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h
index f5f5eb4f0897fe23f1a67d8132db298c967f9c62..24ff48f0207ceeb73099dccfb07f9442243d693d 100755
--- a/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h
+++ b/LArCalorimeter/LArTools/LArTools/LArMCSymTool.h
@@ -70,17 +70,6 @@ class LArMCSymTool: public AthAlgTool, virtual public ILArMCSymTool
   const LArEM_ID*        m_lar_em_id; 
   const LArHEC_ID*       m_lar_hec_id; 
   const LArFCAL_ID*      m_lar_fcal_id;
-
-  // FIXME: mutable
-  // These are used for memoization.  That appears to actually do some good,
-  // so won't remove these yet; we return the memoized value over half
-  // the time.  This seems to come from LArADC2MeVTool::getADC2MeV, where
-  // we have an outer loop over ids and an inner loop over gains
-  // and tools.
-  mutable HWIdentifier m_hwid;
-  mutable HWIdentifier m_hwid_sym;
-  mutable HWIdentifier m_hwid_sym2;
-  mutable Identifier m_offid;
 };
 
 
diff --git a/LArCalorimeter/LArTools/src/LArMCSymTool.cxx b/LArCalorimeter/LArTools/src/LArMCSymTool.cxx
index 50aa8f1137a53472ade839de55a20f24815a0be8..1127fab36db4da62bbd1c75d293c3172bd8e7aac 100755
--- a/LArCalorimeter/LArTools/src/LArMCSymTool.cxx
+++ b/LArCalorimeter/LArTools/src/LArMCSymTool.cxx
@@ -126,24 +126,18 @@ StatusCode LArMCSymTool::finalize()
 
 HWIdentifier LArMCSymTool::symOnline(const HWIdentifier & id)  const
 {
-  if (id == m_hwid) {
-   return m_hwid_sym;
-  }
-  m_hwid_sym.clear();
+
   const Identifier offid = m_cablingService->cnvToIdentifier(id);
-  if (offid.is_valid()) {
-    m_hwid_sym = symOnline(offid);
+  if (!offid.is_valid()) {
+    return HWIdentifier();
   }
-  m_hwid = id;
-  return m_hwid_sym;
+  return symOnline(offid);
 }
 
 HWIdentifier LArMCSymTool::symOnline(const Identifier & id) const
 {
- if (id == m_offid) {
-   return m_hwid_sym2;
- }
 
+  
  IdentifierHash idHash;
  int offset=-1;
  if(m_lar_em_id->is_lar_em(id)) 
@@ -163,9 +157,7 @@ HWIdentifier LArMCSymTool::symOnline(const Identifier & id) const
  }
  if (offset <0) ATH_MSG_ERROR( "problem offset " << offset  );
  const unsigned int index = idHash+offset;
- m_offid = id;
- m_hwid_sym2 = m_listOnline[index];
- return m_hwid_sym2;
+ return  m_listOnline[index];
 }