diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
index 4e6a54c1dba19a0142a9826612b56256f2fcb97c..08d9208f674156f04325d60a1d6c1635ca28abc6 100644
--- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
+++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx
@@ -205,7 +205,7 @@ std::tuple<std::set<std::variant<string::Epsilon, alphabet::Symbol>>, std::set<s
 			ret.insert(std::get<1>(transition.first));
 	}
 
-	return std::make_tuple(local, call, ret);
+	return std::make_tuple(std::move(local), std::move(call), std::move(ret));
 }
 
 automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automaton::RealTimeHeightDeterministicNPDA& n) {
diff --git a/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp b/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp
index dffadfeddcbe6759f28506fa3a24cf5b93105042..85812d6a6da1e6ae10478a22969eb9bb71f09b50 100644
--- a/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp
+++ b/alib2algo/src/automaton/determinize/common/RHDPDACommon.cpp
@@ -197,22 +197,20 @@ std::set<std::pair<automaton::State, alphabet::Symbol>> existsDirtyStateSymbol(c
 	for(const automaton::State& state : states) {
 		const label::Label& stateLabel = state.getName();
 
-		std::set<label::Label> lc { stateLabel };
-		localClosure(lc, std::set<label::Label>{stateLabel}, d); //intentional copy
-
 		bool originalPops = false;
-		for(const label::Label& localState : lc) {
-			const std::set<label::Label> dSubSet = retrieveDSubSet(unpackFromStateLabel(localState));
+		const std::set<label::Label> dSubSet = retrieveDSubSet(unpackFromStateLabel(stateLabel));
 
-			for(const auto& transition : n.getReturnTransitions()) {
-				if(dSubSet.count(std::get<0>(transition.first).getName())) {
-					originalPops = true;
-					goto break2;
-				}
+		for(const auto& transition : n.getReturnTransitions()) {
+			if(dSubSet.count(std::get<0>(transition.first).getName())) {
+				originalPops = true;
+				goto break2;
 			}
 		}
 break2:		if(!originalPops) continue;
 
+		std::set<label::Label> lc { stateLabel };
+		localClosure(lc, std::set<label::Label>{stateLabel}, d); //intentional copy
+
 		std::set<alphabet::Symbol> topSymbols;
 		for(const label::Label& localState : lc) {
 			for(const auto& transition : callTransitions) {