Index: src/libchcore/ConfigNode.cpp
===================================================================
diff -u -N -ra44714d5c7ec0f50a376f4d0ea919ee5a224f834 -r95a466ca0a4f95851dcacf2b80e2084e0168b7e4
--- src/libchcore/ConfigNode.cpp	(.../ConfigNode.cpp)	(revision a44714d5c7ec0f50a376f4d0ea919ee5a224f834)
+++ src/libchcore/ConfigNode.cpp	(.../ConfigNode.cpp)	(revision 95a466ca0a4f95851dcacf2b80e2084e0168b7e4)
@@ -23,7 +23,6 @@
 
 namespace details
 {
-
 	ConfigNode::ConfigNode(object_id_t oidObjectID, const TString& strNodeName, int iOrder, const TString& strValue) :
 		m_oidObjectID(oidObjectID),
 		m_iOrder(m_setModifications, iOrder),
@@ -33,6 +32,29 @@
 		m_setModifications[eMod_Added] = true;
 	}
 
+	ConfigNode::ConfigNode(const ConfigNode& rSrc) :
+		m_oidObjectID(rSrc.m_oidObjectID),
+		m_iOrder(m_setModifications, rSrc.m_iOrder),
+		m_strNodeName(m_setModifications, rSrc.m_strNodeName),
+		m_strValue(m_setModifications, rSrc.m_strValue)
+	{
+		m_setModifications = rSrc.m_setModifications;
+	}
+
+	ConfigNode& ConfigNode::operator=(const ConfigNode& rSrc)
+	{
+		if(this != &rSrc)
+		{
+			m_oidObjectID = rSrc.m_oidObjectID;
+			m_iOrder = rSrc.m_iOrder;
+			m_strNodeName = rSrc.m_strNodeName;
+			m_strValue = rSrc.m_strValue;
+			m_setModifications = rSrc.m_setModifications;
+		}
+
+		return *this;
+	}
+
 	TString ConfigNode::GetNodeName() const
 	{
 		return m_strNodeName;