diff --git a/alib2str/src/automaton/AutomatonToStringComposer.cpp b/alib2str/src/automaton/AutomatonToStringComposer.cpp
index ed609149b9150c5709e7c57317aca78d176f6b6f..5d6750640f5d14d4ff56636ddf9645af59e7a992 100644
--- a/alib2str/src/automaton/AutomatonToStringComposer.cpp
+++ b/alib2str/src/automaton/AutomatonToStringComposer.cpp
@@ -40,7 +40,15 @@ void AutomatonToStringComposer::compose(std::ostream& out, const DFA < SymbolTyp
 	}
 }
 
+template < class SymbolType, class StateType >
+std::string AutomatonToStringComposer::compose ( const DFA < SymbolType, StateType > & automaton ) {
+	std::stringstream ss;
+	compose ( ss, automaton );
+	return ss.str ( );
+}
+
 auto AutomatonToStringComposerDFA = registration::OverloadRegister < AutomatonToStringComposer, void, DFA < > >(AutomatonToStringComposer::compose);
+auto AutomatonToStringComposerDFA2 = registration::AbstractRegister < AutomatonToStringComposer, std::string, const DFA < > & > ( AutomatonToStringComposer::compose );
 auto ObjectToStringComposerDFA = registration::OverloadRegister < alib::ObjectBaseDispatcher, void, DFA < > >( AutomatonToStringComposer::compose);
 
 template < class SymbolType, class StateType >
diff --git a/alib2str/src/automaton/AutomatonToStringComposer.h b/alib2str/src/automaton/AutomatonToStringComposer.h
index cbcd4582a7d7eb6605f398888f2ad06d696a2f5a..3c949f80128816fef46d46476496d479adeac214 100644
--- a/alib2str/src/automaton/AutomatonToStringComposer.h
+++ b/alib2str/src/automaton/AutomatonToStringComposer.h
@@ -40,6 +40,8 @@ public:
 	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const DFA < SymbolType, StateType > & automaton);
 	template < class SymbolType, class StateType >
+	static std::string compose(const DFA < SymbolType, StateType > & automaton);
+	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const NFA < SymbolType, StateType > & automaton);
 	template < class SymbolType, class StateType >
 	static void compose(std::ostream& output, const MultiInitialStateNFA < SymbolType, StateType > & automaton);