diff --git a/silecs-cli-client/src/silecs-cli-client/main.cpp b/silecs-cli-client/src/silecs-cli-client/main.cpp
index bd713ad09c23ae79f2a5f1b574f0552325373675..f63b4de88b12ec239202c7c8f383c8498c0dcbc2 100755
--- a/silecs-cli-client/src/silecs-cli-client/main.cpp
+++ b/silecs-cli-client/src/silecs-cli-client/main.cpp
@@ -157,13 +157,13 @@ Silecs::Cluster* getSilecsClusterbyDevice(std::string deviceName, Silecs::XMLPar
 
 std::string getSilecsBlockNamebyRegisterName(std::string registerName, Silecs::XMLParser &paramParser)
 {
-	Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/Block[Register/@name='"+ registerName + "']");
+	Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/*[*/@name='"+ registerName + "']");
 	return blockNode.getAttribute("name");
 }
 
 bool isRegisterInBlock(std::string registerName, std::string blockName,  Silecs::XMLParser &paramParser)
 {
-	Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/Block[Register/@name='"+ registerName + "']");
+	Silecs::ElementXML blockNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class/*[*/@name='"+ registerName + "']");
 	if( blockName == blockNode.getAttribute("name"))
 		return true;
 	return false;
@@ -186,7 +186,7 @@ std::vector<std::string> getBlockNamesFromDeviceName(std::string deviceName,  Si
 	std::vector< std::string > blockNames;
 	Silecs::ElementXML classNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class[Instance/@label='"+ deviceName + "']");
 	std::string className = classNode.getAttribute("name");
-	boost::ptr_vector<Silecs::ElementXML> blocks = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/Block");
+	boost::ptr_vector<Silecs::ElementXML> blocks = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/*[ name()='Acquisition-Block' or name()='Setting-Block' or name()='Command-Block']");
 	boost::ptr_vector<Silecs::ElementXML>::iterator block;
 	for( block = blocks.begin();block!= blocks.end(); block++)
 	{
@@ -201,7 +201,7 @@ std::vector<std::string> getRegisterNamesFromDeviceBlockName(std::string deviceN
 	std::vector< std::string > registerNames;
 	Silecs::ElementXML classNode = paramParser.getFirstElementFromXPath("/SILECS-Param/SILECS-Mapping/SILECS-Class[Instance/@label='"+ deviceName + "']");
 	std::string className = classNode.getAttribute("name");
-	boost::ptr_vector<Silecs::ElementXML> registerNodes = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/Block[@name='"+ blockName + "']/Register");
+	boost::ptr_vector<Silecs::ElementXML> registerNodes = paramParser.getElementsFromXPath_throwIfEmpty("/SILECS-Param/SILECS-Mapping/SILECS-Class[@name='"+ className + "']/*[@name='"+ blockName + "']/*[ name()='Acquisition-Register' or name()='Setting-Register' or name()='Volatile-Register']");
 	boost::ptr_vector<Silecs::ElementXML>::iterator registerNode;
 	for( registerNode = registerNodes.begin();registerNode!= registerNodes.end(); registerNode++)
 	{