diff --git a/alib2data/src/label/LabelFeatures.h b/alib2data/src/label/LabelFeatures.h
index 33eb238f4450fa83ffd3744a37c2eac01ce40d18..5d34b49012c2a4907e59b506f24eefc0b3e55c52 100644
--- a/alib2data/src/label/LabelFeatures.h
+++ b/alib2data/src/label/LabelFeatures.h
@@ -28,6 +28,9 @@ class ObjectLabel;
 class LabelSetLabel;
 class LabelPairLabel;
 class UniqueLabel;
+class InitialStateLabel;
+class FailStateLabel;
+class FinalStateLabel;
 
 } /* namespace label */
 
diff --git a/alib2str/src/label/LabelToStringComposer.cpp b/alib2str/src/label/LabelToStringComposer.cpp
index 55d90989092c1e8440a6ba18cec75400c1b32aa1..5361f9c50b4075e956702adfcae3f7509ef3c997 100644
--- a/alib2str/src/label/LabelToStringComposer.cpp
+++ b/alib2str/src/label/LabelToStringComposer.cpp
@@ -14,6 +14,9 @@
 #include "label/LabelSetLabel.h"
 #include "label/LabelPairLabel.h"
 #include "label/UniqueLabel.h"
+#include "label/InitialStateLabel.h"
+#include "label/FinalStateLabel.h"
+#include "label/FailStateLabel.h"
 
 #include "../StringApi.hpp"
 
@@ -78,6 +81,27 @@ void LabelToStringComposer::compose(std::ostream& out, const UniqueLabel& label)
 auto LabelToStringComposerUniqueLabel = LabelToStringComposer::RegistratorWrapper<void, UniqueLabel>(LabelToStringComposer::compose);
 auto ObjectToStringComposerUniqueLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, UniqueLabel >( LabelToStringComposer::compose);
 
+void LabelToStringComposer::compose(std::ostream& out, const FailStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerFailStateLabel = LabelToStringComposer::RegistratorWrapper<void, FailStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerFailStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, FailStateLabel >( LabelToStringComposer::compose);
+
+void LabelToStringComposer::compose(std::ostream& out, const InitialStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerInitialStateLabel = LabelToStringComposer::RegistratorWrapper<void, InitialStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerInitialStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, InitialStateLabel >( LabelToStringComposer::compose);
+
+void LabelToStringComposer::compose(std::ostream& out, const FinalStateLabel& label) {
+	out << (std::string) label;
+}
+
+auto LabelToStringComposerFinalStateLabel = LabelToStringComposer::RegistratorWrapper<void, FinalStateLabel>(LabelToStringComposer::compose);
+auto ObjectToStringComposerFinalStateLabel = alib::ObjectBaseDispatcher::RegistratorWrapper<void, FinalStateLabel >( LabelToStringComposer::compose);
+
 void LabelToStringComposer::compose(std::ostream& output, const Label& label) {
 	dispatch(output, label.getData());
 }
diff --git a/alib2str/src/label/LabelToStringComposer.h b/alib2str/src/label/LabelToStringComposer.h
index 4c716501b62778ef76f8c00312b8e9426dd8e8fc..5decc9e98affd1511fb02436b92dce4fbb352bda 100644
--- a/alib2str/src/label/LabelToStringComposer.h
+++ b/alib2str/src/label/LabelToStringComposer.h
@@ -26,6 +26,9 @@ public:
 	static void compose(std::ostream&, const LabelSetLabel& label);
 	static void compose(std::ostream&, const LabelPairLabel& label);
 	static void compose(std::ostream&, const UniqueLabel& label);
+	static void compose(std::ostream&, const FailStateLabel& label);
+	static void compose(std::ostream&, const InitialStateLabel& label);
+	static void compose(std::ostream&, const FinalStateLabel& label);
 
 	/**
 	 * Prints text representation of Label to the output stream.