diff --git a/info4/kapitel-8/Interpreter/gotointerpreter.py b/info4/kapitel-8/Interpreter/gotointerpreter.py
index bcd6576d759658186d575e41d1be6a3cf0e17ba2..040b4d36fa4f44b6f92738e6e805d7cb227563b8 100644
--- a/info4/kapitel-8/Interpreter/gotointerpreter.py
+++ b/info4/kapitel-8/Interpreter/gotointerpreter.py
@@ -115,13 +115,17 @@ class GOTOInterpreter:
         if not self.next_nonempty_token('GOTO', 'SEMICOLON').k == 'SEMICOLON':
             self.error_handler.handle_error('SEMICOLON zum Abschluss eines GOTO erwartet')
         marker_number = int(marker_token.v[1:])
+        saved_position = marker_token.p
+        saved_line = self.error_handler.line_number
         current_token = self.next_token()
         while current_token is not None and max(self.marker_to_position.keys()) < int(marker_number):
             current_token = self.verify_line(current_token)
-        self.lex.current_position = self.marker_to_position.get(marker_number)
-        self.error_handler.line_number = self.marker_to_line.get(marker_number)
         if marker_number not in self.marker_to_position.keys():
+            self.lex.current_position = saved_position
+            self.error_handler.line_number = saved_line
             self.error_handler.handle_error('GOTO zu nicht vorhandener Markierung')
+        self.lex.current_position = self.marker_to_position.get(marker_number)
+        self.error_handler.line_number = self.marker_to_line.get(marker_number)
         return self.next_token()
 
     def verify_goto(self, goto_token):