diff --git a/sflphone-common/src/config/yamlnode.cpp b/sflphone-common/src/config/yamlnode.cpp
index 1daa148ce9176569a7f8bbad9e043ce997e3d36e..ebfb8f245c6e17209cd63e4eeb5f55f05a8133de 100755
--- a/sflphone-common/src/config/yamlnode.cpp
+++ b/sflphone-common/src/config/yamlnode.cpp
@@ -33,6 +33,23 @@
 namespace Conf {
 
 
+void YamlDocument::addNode(YamlNode *node)
+{
+  Sequence::iterator it = doc.end();
+  doc.insert(it, node);
+}
+
+YamlNode *YamlDocument::popNode()
+{
+  Sequence::iterator it = doc.begin();
+  YamlNode *node = doc.front();
+
+  //removed element's destructor is called
+  doc.pop_front();
+
+  return node;
+}
+
 void MappingNode::setKeyValue(Key key, YamlNode *value) 
 {
   Mapping::iterator it = map.end();
@@ -50,7 +67,6 @@ void MappingNode::removeKeyValue(Key key)
 YamlNode *MappingNode::getValue(Key key) 
 {
   Mapping::iterator it = map.find(key);
-
   return it->second;
 }
 
@@ -58,11 +74,8 @@ YamlNode *MappingNode::getValue(Key key)
 void SequenceNode::addNode(YamlNode *node)
 {
   Sequence::iterator it = seq.end();
-
   seq.insert(it, node);
 }
 
-
-
 }
 
diff --git a/sflphone-common/src/config/yamlnode.h b/sflphone-common/src/config/yamlnode.h
index ad8c240bc3c2f99b5ddfed122c050fe976dd6d73..d6efa03c08bf1b690143cf4b8ffd4a34ab311e68 100755
--- a/sflphone-common/src/config/yamlnode.h
+++ b/sflphone-common/src/config/yamlnode.h
@@ -46,7 +46,6 @@ typedef std::string Value;
 typedef std::list<YamlNode *> Sequence;
 typedef std::map<Key, YamlNode *> Mapping;
 
-
 class YamlNodeException : public std::exception
 {
 
@@ -66,10 +65,8 @@ class YamlNodeException : public std::exception
 
 };
 
-
 enum NodeType { DOCUMENT, SCALAR, MAPPING, SEQUENCE };
 
-
 class YamlNode {
   
  public:
@@ -87,6 +84,24 @@ class YamlNode {
 };
 
 
+class YamlDocument : YamlNode {
+
+ public:
+
+  YamlDocument() : YamlNode(DOCUMENT) {}
+
+  ~YamlDocument() {}
+
+  void addNode(YamlNode *node);
+
+  YamlNode *popNode();
+
+ private:
+
+  Sequence doc;
+
+ };
+
 class SequenceNode : public YamlNode {
 
  public:
@@ -147,6 +162,7 @@ class ScalarNode : public YamlNode {
 
 };
 
+
 }
 
 
diff --git a/sflphone-common/test/configurationtest.cpp b/sflphone-common/test/configurationtest.cpp
index 473753e9916d48fc839416c92bfe436883bce034..488318271c4d7b4419bcf2e4d4a68453f0a8842e 100755
--- a/sflphone-common/test/configurationtest.cpp
+++ b/sflphone-common/test/configurationtest.cpp
@@ -191,7 +191,7 @@ void ConfigurationTest::testYamlParser()
 
 void ConfigurationTest::testYamlComposition() 
 {
-  
+
   Conf::SequenceNode *seq = new Conf::SequenceNode();
   Conf::MappingNode *map = new Conf::MappingNode();
   Conf::ScalarNode *sclr = new Conf::ScalarNode();
@@ -218,4 +218,6 @@ void ConfigurationTest::testYamlComposition()
   delete map;
   delete sclr;
 
+  
+
 }