Index: osgVisual/include/util/visual_util.h
===================================================================
--- osgVisual/include/util/visual_util.h	(revision 145)
+++ osgVisual/include/util/visual_util.h	(revision 146)
@@ -221,5 +221,5 @@
 
 	/**
-	 * \brief  Parses for the XML node of the specified module.The caller has to clean up the xmlDoc and the parser, beside it returns NULL because the queried modules is not configured.
+	 * \brief Parses for the XML node of the specified module. The caller has to clean up the xmlDoc and the parser, beside it returns NULL because the queried modules is not configured.
 	 * 
 	 * To clean up, call this two functions:
@@ -243,4 +243,13 @@
 	static xmlNode* getModuleXMLConfig(std::string configFilename, std::string moduleName, xmlDoc*& doc);
 
+	/**
+	 * \brief Parses for the XML node of the scenery configuration. The caller has to clean up the xmlDoc and the parser, beside it returns NULL because the queried modules is not configured.
+	 * 
+	 * @param configFilename : Config Filename to parse.
+	 * @param doc : xmlDoc to use. Must be created outside that the caller can clean it up.
+	 * @return : NULL on error, otherwise pointer to the xmlNode of the scenery configuration.
+	 */ 
+	static xmlNode* getSceneryXMLConfig(std::string configFilename, xmlDoc*& doc);
+
 private: 
 	/**
@@ -254,4 +263,12 @@
 	 */ 
 	static xmlNode* checkXMLNodeChildrenForModule(xmlNode* node, std::string moduleName);
+
+	/**
+	 * \brief This functions checks a list of nodes and all of its children for the scenery configuration.
+	 * 
+	 * @param node : Node to search in
+	 * @return : NULL if the module configuration was not found, otherwise pointer to the XML Node with the configuration for the specified module. 
+	 */ 
+	static xmlNode* checkXMLNodeChildrenForScenery(xmlNode* node);
 };
 
Index: osgVisual/src/util/visual_util.cpp
===================================================================
--- osgVisual/src/util/visual_util.cpp	(revision 145)
+++ osgVisual/src/util/visual_util.cpp	(revision 146)
@@ -25,4 +25,66 @@
 util::~util(void)
 {
+}
+
+xmlNode* util::getSceneryXMLConfig(std::string configFilename, xmlDoc*& doc)
+{
+	doc = NULL;
+	xmlNode *root_element = NULL;
+
+	// Check for valid parameters
+	if(configFilename == "")
+	{
+		OSG_ALWAYS << "ERROR - util::getModuleXMLConfig() : Invalid Configuration Filename!" << std::endl;
+		return NULL;
+	}
+
+	// It is a valid XML document?
+	doc = xmlReadFile(configFilename.c_str(), NULL, 0);	
+	if (doc == NULL)
+	{
+		OSG_ALWAYS << "ERROR - util::getModuleXMLConfig() : " << configFilename << " is not a valid XML file!" << std::endl;
+		return NULL;
+	}
+
+	//  Get the root element node
+	root_element = xmlDocGetRootElement(doc);
+
+	// If file is a valid osgVisual config file, check all the root xml node and all of it's children of osgvisualconfiguration for the specified module
+	xmlNode* tmpNode = checkXMLNodeChildrenForScenery(root_element);
+
+	if( !tmpNode ) // if no valid node was found: clena up. Otherwise: the caller has to clean up.
+	{
+		xmlFreeDoc(doc);	// free the document
+		xmlCleanupParser();	// Free the global variables that may have been allocated by the parser.
+		return NULL;
+	}
+	else
+		return tmpNode;
+}
+
+xmlNode* util::checkXMLNodeChildrenForScenery(xmlNode* node)
+{
+	for (xmlNode *cur_node = node; cur_node; cur_node = cur_node->next)	// iterate through all elements 
+	{
+		// Is the node the one we are searching for?
+		if (cur_node->type == XML_ELEMENT_NODE)
+		{
+			std::string node_name=reinterpret_cast<const char*>(cur_node->name);
+			if (node_name == "scenery")
+			{
+				OSG_DEBUG << "XML node scenery found" << std::endl;
+				return cur_node;
+			}
+			else	// Otherwise: check its children..
+			{
+				xmlNode* tmp_XmlNode = checkXMLNodeChildrenForScenery(cur_node->children);
+				if(tmp_XmlNode)
+					return tmp_XmlNode;
+			}
+		}	// IF NODE TYPE = ELEMENT END
+
+		// Proceed with next node in this loop.
+	}
+	return NULL;
 }
 
@@ -100,4 +162,5 @@
 		// Proceed with next node in this loop.
 	}
+	return NULL;
 }
 
