diff --git a/evrouting/charge/routing.py b/evrouting/charge/routing.py
index 757525829947bd23a0a5160f61a5c4ea07bd72f5..9549ab039aacddd7a08cfb0b5b5649fa6ab3baeb 100644
--- a/evrouting/charge/routing.py
+++ b/evrouting/charge/routing.py
@@ -68,9 +68,7 @@ def shortest_path(G: nx.DiGraph, charging_stations: Set[Node], s: Node, t: Node,
         l_set[node_min].append(label_node_min)
 
         if node_min == t:
-            G.remove_node(t)
-            charging_stations.remove(dummy_cs)
-
+            _cleanup(G, t, charging_stations, dummy_cs)
             return _result(
                 label_node_min, f_soc_factory(label_node_min).minimum
             )
@@ -138,9 +136,14 @@ def shortest_path(G: nx.DiGraph, charging_stations: Set[Node], s: Node, t: Node,
                 if is_new_min:
                     prio_queue.insert(n, **keys(f_soc_factory(label_neighbour)))
 
+    _cleanup(G, t, charging_stations, dummy_cs)
+    return EmptyResult()
+
+
+def _cleanup(G, t, charging_stations, dummy_cs):
     G.remove_node(t)
+    G.remove_node(dummy_cs)
     charging_stations.remove(dummy_cs)
-    return EmptyResult()
 
 
 def _setup(G: nx.Graph, charging_stations: Set[Node], capacity: SoC,