diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h
index 63bf4729653537bd349239d1d08dc51a0402c862..51c96bbed445350fad34bb9f4b0495b05c703cc0 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCableSSWToROD.h
@@ -19,13 +19,15 @@ class TGCCableSSWToROD : public TGCCable
 public:
   // Constructor & Destructor
   TGCCableSSWToROD(std::string filename);
+  TGCCableSSWToROD (const TGCCableSSWToROD&);
+  TGCCableSSWToROD& operator=(const TGCCableSSWToROD&);
 
   virtual ~TGCCableSSWToROD(void);
   
   virtual TGCModuleMap* getModule(const TGCModuleId* moduleId) const;
 
 private:
-  TGCCableSSWToROD(void) {}
+  TGCCableSSWToROD(void);
   virtual TGCModuleMap* getModuleIn(const TGCModuleId* rod) const;
   virtual TGCModuleMap* getModuleOut(const TGCModuleId* ssw) const;
   TGCDatabase* database;
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h
index f3811d67f5d220d20bb354f8207cf23957e9f613..80136eaceeba22dcfba5f2511d094217f407246f 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCCabling.h
@@ -33,7 +33,13 @@ class TGCModuleSLB;
 
 class TGCCabling : public TGCCablingBase
 {
-public:
+ private: //hide default constructor, copy constructor and assignment
+  TGCCabling (void);
+  TGCCabling (const TGCCabling&);
+  TGCCabling& operator= (const TGCCabling&);
+
+
+ public:
   // Constructor & Destructor
   TGCCabling(std::string filenameASDToPP,
 	     std::string filenameInPP,
@@ -179,7 +185,6 @@ private:
   TGCCableHPBToSL*  cableHPBToSL;
   TGCCableSLBToSSW* cableSLBToSSW;
   TGCCableSSWToROD* cableSSWToROD;
-  TGCCabling(void) {}
 
   mutable std::map<int, TGCModuleId*> m_slbModuleIdMap; 
   int getIndexFromReadoutWithoutChannel(const TGCIdBase::SideType side,  
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h
index 45d4eb2e41f2b1a748b7baa57bd27a1c642954fc..3825703c809d63dd08a27425c65a6af7999f1528 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseASDToPP.h
@@ -100,6 +100,9 @@ private:
 
   /** This bool variable is used to know the database is common or sector specific */
   bool m_isCommon; 
+
+  /** hidden assignment operator */
+  TGCDatabaseASDToPP & operator=(const TGCDatabaseASDToPP &right);
 };
   
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h
index b6cf30ef8c3d0832060e1a283dceeea4438aab55..8cfedb918a2fa881d87c085ff2e0c8596d9cc764 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseInPP.h
@@ -67,6 +67,9 @@ private:
   int NIndexDBIn;
   int maxIndexIn[NIndexIn];
   int minIndexIn[NIndexIn];
+
+  /** hidden assignment operator */
+  TGCDatabaseInPP & operator=(const TGCDatabaseInPP &right);
 };
   
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h
index 358ff48d9fd9d1b7ec8b89c9c829a0bb17519a9c..0f99a6d965b5e365e6e5af756504a0d1cff9c227 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabasePPToSL.h
@@ -27,6 +27,9 @@ public:
 private:
   virtual void readDB(void);
   TGCDatabasePPToSL(void) {}
+
+  /** hidden assignment operator */
+  TGCDatabasePPToSL & operator=(const TGCDatabasePPToSL &right);
 };
   
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h
index f20d4d060a04a6a691fc42ee5cbbb4c799a1126e..473507a5e5d56ae5c7becbe684ef47a8ab1ecf84 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/MuonTGC_Cabling/TGCDatabaseSLBToROD.h
@@ -28,6 +28,9 @@ public:
 private:
   virtual void readDB(void);
   TGCDatabaseSLBToROD(void) {}
+
+  /** hidden assignment operator */
+  TGCDatabaseSLBToROD & operator=(const TGCDatabaseSLBToROD &right);
 };
   
 } // end of namespace
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx
index 96f6622204def49e14a44ac2a3f2c91ce6f0bdbb..de51b3bfc6d4948731b3f48fbd37cb1e94f5dbe1 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/MuonTGC_CablingSvc.cxx
@@ -859,7 +859,10 @@ bool MuonTGC_CablingSvc::getOfflineIDfromOnlineID(Identifier & offlineId,
       case 21:
 	// T11S
 	channel -= OffsetForT11S;
-	if(channel<=0) return false;
+	if(channel<=0) {
+          delete asdin;
+          return false;
+        }
  	break;
       default:
 	break;
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx
index bf2c2e5db7c53d2494174125b45bea8e84d4f334..572f0a2c6f9082d23ae51fc6b721cc3ac8dc00ce 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCableSSWToROD.cxx
@@ -17,6 +17,28 @@ TGCCableSSWToROD::TGCCableSSWToROD(std::string filename)
 {
   database = new TGCDatabaseSLBToROD(filename,"SSW ALL");
 }
+
+TGCCableSSWToROD::TGCCableSSWToROD (void)
+  : TGCCable(TGCCable::SSWToROD),
+    database(0)
+{
+}
+
+TGCCableSSWToROD::TGCCableSSWToROD (const TGCCableSSWToROD& right)
+  : TGCCable(TGCCable::SSWToROD),
+    database(0)
+{
+  database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database));
+}
+
+TGCCableSSWToROD& TGCCableSSWToROD::operator=(const TGCCableSSWToROD& right)
+{
+  if (this != &right) {
+    delete database;
+    database = new TGCDatabaseSLBToROD(*dynamic_cast<TGCDatabaseSLBToROD*>(right.database));
+  }
+  return *this;
+}
   
 TGCCableSSWToROD::~TGCCableSSWToROD(void)
 {
diff --git a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx
index d696b04fdb0e6e511c3c62d5896a622a2488ebd6..f665b2dc953239ff4a36a922f2999157551efb13 100644
--- a/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx
+++ b/MuonSpectrometer/MuonCablings/MuonTGC_Cabling/src/TGCCabling.cxx
@@ -25,6 +25,43 @@
 namespace MuonTGC_Cabling {
 
 // Constructor & Destructor
+TGCCabling::TGCCabling (void)
+  : TGCCablingBase(),
+    cableInASD(0),
+    cableASDToPP(0),
+    cableInPP(0),
+    cablePPToSLB(0),
+    cableInSLB(0),
+    cableSLBToHPB(0),
+    cableHPBToSL(0),
+    cableSLBToSSW(0),
+    cableSSWToROD(0)
+{
+  // do nothing
+}
+
+TGCCabling::TGCCabling (const TGCCabling&)
+  : TGCCablingBase(),
+    cableInASD(0),
+    cableASDToPP(0),
+    cableInPP(0),
+    cablePPToSLB(0),
+    cableInSLB(0),
+    cableSLBToHPB(0),
+    cableHPBToSL(0),
+    cableSLBToSSW(0),
+    cableSSWToROD(0)
+{
+  // do nothing
+}
+ 
+TGCCabling& TGCCabling::operator= (const TGCCabling&)
+{
+  // do nothing
+  return *this;
+}
+
+
 TGCCabling::TGCCabling(std::string filenameASDToPP,
 		       std::string filenameInPP,
 		       std::string filenamePPToSL,