diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
index de830f19cf75f3663475adaebf268722a23c48e2..4620ee7b607f130fb36765914d23e0b071db5453 100644
--- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
+++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp
@@ -101,16 +101,16 @@ void ToRegExpStateElimination::extendExtendedNFA(automaton::ExtendedNFA < > & au
 
 	if(automaton.getFinalStates().size() > 1) {
 		DefaultStateType f = common::createUnique(label::FinalStateLabel::instance < DefaultStateType > ( ), automaton.getStates());
-		automaton.addState(f);
+		automaton.addState ( f );
 
 		for(const auto &state : automaton.getFinalStates() ) {
 			regexp::UnboundedRegExpStructure < DefaultSymbolType > regexp { regexp::UnboundedRegExpEpsilon < DefaultSymbolType > () };
 			automaton.addTransition(state, regexp, f);
-
-			automaton.removeFinalState(state);
 		}
 
-		automaton.addFinalState(f);
+		std::set < DefaultStateType > newFinalStates;
+		newFinalStates.insert ( f );
+		automaton.setFinalStates ( newFinalStates );
 	}
 }