diff --git a/alib2aux/src/convert/DotConverter.cpp b/alib2aux/src/convert/DotConverter.cpp
index 4f0df200a9f8f4987b1d451cbc008e11e5dca977..e947d167f9d0994b7659cbcf1809fdd6c33665c5 100644
--- a/alib2aux/src/convert/DotConverter.cpp
+++ b/alib2aux/src/convert/DotConverter.cpp
@@ -15,7 +15,7 @@ void DotConverter::convert(std::ostream& out, const automaton::Automaton& a) {
 }
 
 auto DotConverterEpsilonNFA = registration::OverloadRegister < DotConverter, void, automaton::EpsilonNFA < > > ( DotConverter::convert );
-auto DotConverterMultiInitialStateNFA = registration::OverloadRegister < DotConverter, void, automaton::MultiInitialStateNFA < >> ( DotConverter::convert );
+auto DotConverterMultiInitialStateNFA = registration::OverloadRegister < DotConverter, void, automaton::MultiInitialStateNFA < > > ( DotConverter::convert );
 auto DotConverterNFA = registration::OverloadRegister < DotConverter, void, automaton::NFA < > > ( DotConverter::convert );
 auto DotConverterDFA = registration::OverloadRegister < DotConverter, void, automaton::DFA < > > ( DotConverter::convert );
 auto DotConverterExtendedNFA = registration::OverloadRegister < DotConverter, void, automaton::ExtendedNFA < > > ( DotConverter::convert );
@@ -34,4 +34,24 @@ auto DotConverterNPDA = registration::OverloadRegister < DotConverter, void, aut
 auto DotConverterSinglePopNPDA = registration::OverloadRegister < DotConverter, void, automaton::SinglePopNPDA < > > ( DotConverter::convert );
 auto DotConverterOneTapeDTM = registration::OverloadRegister < DotConverter, void, automaton::OneTapeDTM < > > ( DotConverter::convert );
 
+auto DotConverterEpsilonNFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::EpsilonNFA < > & > ( DotConverter::convert );
+auto DotConverterMultiInitialStateNFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::MultiInitialStateNFA < > & > ( DotConverter::convert );
+auto DotConverterNFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::NFA < > & > ( DotConverter::convert );
+auto DotConverterDFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::DFA < > & > ( DotConverter::convert );
+auto DotConverterExtendedNFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::ExtendedNFA < > & > ( DotConverter::convert );
+auto DotConverterCompactNFA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::CompactNFA < > & > ( DotConverter::convert );
+auto DotConverterNFTA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::NFTA < > & > ( DotConverter::convert );
+auto DotConverterDFTA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::DFTA < > & > ( DotConverter::convert );
+auto DotConverterDPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::DPDA < > & > ( DotConverter::convert );
+auto DotConverterSinglePopDPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::SinglePopDPDA < > & > ( DotConverter::convert );
+auto DotConverterInputDrivenDPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::InputDrivenDPDA < > & > ( DotConverter::convert );
+auto DotConverterInputDrivenNPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::InputDrivenNPDA < > & > ( DotConverter::convert );
+auto DotConverterVisiblyPushdownDPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::VisiblyPushdownDPDA < > & > ( DotConverter::convert );
+auto DotConverterVisiblyPushdownNPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::VisiblyPushdownNPDA < > & > ( DotConverter::convert );
+auto DotConverterRealTimeHeightDeterministicDPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::RealTimeHeightDeterministicDPDA < > & > ( DotConverter::convert );
+auto DotConverterRealTimeHeightDeterministicNPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::RealTimeHeightDeterministicNPDA < > & > ( DotConverter::convert );
+auto DotConverterNPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::NPDA < > & > ( DotConverter::convert );
+auto DotConverterSinglePopNPDA2 = registration::AbstractRegister < DotConverter, std::string, const automaton::SinglePopNPDA < > & > ( DotConverter::convert );
+auto DotConverterOneTapeDTM2 = registration::AbstractRegister < DotConverter, std::string, const automaton::OneTapeDTM < > & > ( DotConverter::convert );
+
 } /* namespace convert */
diff --git a/alib2aux/src/convert/DotConverter.h b/alib2aux/src/convert/DotConverter.h
index 294ea620e9c0b520223a9f09c3594fdd526d3043..4aefe08ea0fc00c58279a2ecee6ce279b2fa900f 100644
--- a/alib2aux/src/convert/DotConverter.h
+++ b/alib2aux/src/convert/DotConverter.h
@@ -166,6 +166,13 @@ public:
 
 	template < class SymbolType, class StateType >
 	static void convert(std::ostream& out, const automaton::OneTapeDTM < SymbolType, StateType > & a);
+
+	template < class T >
+	static std::string convert ( const T & automaton ) {
+		std::stringstream ss;
+		convert ( ss, automaton );
+		return ss.str ( );
+	}
 };
 
 template < class SymbolType, class EpsilonType, class StateType >