diff --git a/VirtualRobot/RobotFactory.cpp b/VirtualRobot/RobotFactory.cpp
index baf778a195e6bfadb364e43d2aa6ee102452449d..f0643f4da4255287c06b8ce06a2c91a6c24c0520 100644
--- a/VirtualRobot/RobotFactory.cpp
+++ b/VirtualRobot/RobotFactory.cpp
@@ -24,9 +24,9 @@ RobotFactory::~RobotFactory()
 }
 
 
-RobotPtr RobotFactory::createRobot( const std::string &name )
+RobotPtr RobotFactory::createRobot(const std::string &name, const std::string &type)
 {
-	RobotPtr result(new LocalRobot(name));
+	RobotPtr result(new LocalRobot(name, type));
 	return result;
 
 }
@@ -243,7 +243,7 @@ RobotPtr RobotFactory::cloneChangeStructure(RobotPtr robot, robotStructureDef &n
     }
 
     std::map<std::string, RobotNodePtr> newNodes;
-    RobotPtr newRobot = createRobot(robot->getName());
+    RobotPtr newRobot = createRobot(robot->getName(), robot->getType() + "_restructured_" + newStructure.rootName);
     RobotNodePtr rn = robot->getRobotNode(newStructure.rootName);
     rn = rn->clone(newRobot, false);
     newNodes[newStructure.rootName] = rn;
diff --git a/VirtualRobot/RobotFactory.h b/VirtualRobot/RobotFactory.h
index 02acec8d387fd66868dd140f9cd81d69780ded0e..3c87e725f33fc2a7a5361ea9c64867f1bc20d53f 100644
--- a/VirtualRobot/RobotFactory.h
+++ b/VirtualRobot/RobotFactory.h
@@ -42,7 +42,7 @@ public:
 	/*!
 	Creates an empty robot.
 	*/
-	static RobotPtr createRobot(const std::string &name);
+    static RobotPtr createRobot(const std::string &name, const std::string &type = "");
 
 	/*!
 		Initializes Robot and all RobotNodes.