diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp
index da47c080f654908e0d53b810d276cb95183cbbfd..9fab9bf3ba06e8d681f8986f927cd1f5dfe31846 100644
--- a/alib2data/src/automaton/TA/NFTA.cpp
+++ b/alib2data/src/automaton/TA/NFTA.cpp
@@ -8,9 +8,12 @@
 #include "NFTA.h"
 
 #include <registration/ValuePrinterRegistration.hpp>
+#include <registration/CastRegistration.hpp>
 
 namespace {
 
 static auto valuePrinter = registration::ValuePrinterRegister < automaton::NFTA < > > ( );
 
+static auto NFTAFromDFTA = registration::CastRegister < automaton::NFTA < >, automaton::DFTA < > > ( );
+
 } /* namespace */
diff --git a/alib2data/src/automaton/TA/NFTA.h b/alib2data/src/automaton/TA/NFTA.h
index 902d73bba82415df3d95613d15ec6dfec7b47c91..04f362c22cb7d94b08cb2c1220caa068a7c5d793 100644
--- a/alib2data/src/automaton/TA/NFTA.h
+++ b/alib2data/src/automaton/TA/NFTA.h
@@ -417,7 +417,7 @@ NFTA < SymbolType, RankType, StateType >::NFTA() : NFTA ( ext::set < StateType >
 
 template < class SymbolType, class RankType, class StateType >
 NFTA < SymbolType, RankType, StateType >::NFTA(const DFTA < SymbolType, RankType, StateType > & other) : NFTA ( other.getStates(), other.getInputAlphabet(), other.getFinalStates() ) {
-	transitions = other.getTransitions ( );
+	transitions.insert ( other.getTransitions ( ).begin ( ), other.getTransitions ( ).end ( ) );
 }
 
 template < class SymbolType, class RankType, class StateType >