diff --git a/src/generate_launch.cpp b/src/generate_launch.cpp
index 3d7eaf2ac6672e5e0295f45918ef0e89d1b7fc8a..95cc3822f7181f5a955c98fc5064c830665d2d93 100644
--- a/src/generate_launch.cpp
+++ b/src/generate_launch.cpp
@@ -147,14 +147,21 @@ void generate_signals_launch(std::string &path,std::string &signals_file,COpendr
         signal.get_type(type,subtype);
         get_signal_type_info(type,subtype,signal.get_value(),name,marker);
         out_file << std::endl;
-        out_file << "  <include file=\"$(find iri_sign_description)/launch/spawn_sign.launch\">" << std::endl;
+        if(type==SEMAPHORE_TYPE)
+          out_file << "  <include file=\"$(find iri_sign_description)/launch/spawn_semaphore.launch\">" << std::endl;
+        else
+          out_file << "  <include file=\"$(find iri_sign_description)/launch/spawn_sign.launch\">" << std::endl;
         out_file << "    <arg name=\"name\"  value=\"" << name << "_" << signal.get_id() << "\"/>" << std::endl;
         if(type==SEMAPHORE_TYPE)
+        {
           out_file << "    <arg name=\"model\"  value=\"semaphore\"/>" << std::endl;
+          out_file << "    <arg name=\"initial_state\"  value=\"True\"/>" << std::endl;
+        }
         else
+        {
           out_file << "    <arg name=\"model\"  value=\"sign\"/>" << std::endl;
-        out_file << "    <arg name=\"tag\"  value=\"" << marker << "\"/>" << std::endl;
-        out_file << "    <arg name=\"type\"  value=\"" << name << "\"/>" << std::endl;
+          out_file << "    <arg name=\"type\"  value=\"" << name << "\"/>" << std::endl;
+        }
         world=signal.get_world_pose();
         out_file << "    <arg name=\"x\"  value=\"" << world.x << "\"/>" << std::endl;
         out_file << "    <arg name=\"y\"  value=\"" << world.y << "\"/>" << std::endl;