diff --git a/lib/Travelynx/Controller/Traveling.pm b/lib/Travelynx/Controller/Traveling.pm
index 2463bb502efaf760b693609de4fc2bda20b30b77..d309753eebe953a9de5f2c178c7fb4b73c9f13f9 100755
--- a/lib/Travelynx/Controller/Traveling.pm
+++ b/lib/Travelynx/Controller/Traveling.pm
@@ -845,20 +845,37 @@ sub station {
 				  } @results;
 			}
 
+			my $user_status = $self->get_user_status;
+
+			my $can_check_out = 0;
+			if ( $user_status->{checked_in} ) {
+				for my $stop ( @{ $user_status->{route_after} } ) {
+					if (
+						$stop->[1] eq $status->{station_eva}
+						or List::Util::any { $stop->[1] eq $_->{uic} }
+						@{ $status->{related_stations} }
+					  )
+					{
+						$can_check_out = 1;
+						last;
+					}
+				}
+			}
+
 			my $connections_p;
 			if ($train) {
 				@results
 				  = grep { $_->type . ' ' . $_->train_no eq $train } @results;
 			}
 			else {
-				my $user = $self->get_user_status;
-				if (    $user->{cancellation}
+				if (    $user_status->{cancellation}
 					and $status->{station_eva} eq
-					$user->{cancellation}{dep_eva} )
+					$user_status->{cancellation}{dep_eva} )
 				{
 					$connections_p = $self->get_connecting_trains_p(
-						eva              => $user->{cancellation}{dep_eva},
-						destination_name => $user->{cancellation}{arr_name}
+						eva => $user_status->{cancellation}{dep_eva},
+						destination_name =>
+						  $user_status->{cancellation}{arr_name}
 					);
 				}
 				else {
@@ -878,6 +895,8 @@ sub station {
 							hafas            => $use_hafas,
 							station          => $status->{station_name},
 							related_stations => $status->{related_stations},
+							user_status      => $user_status,
+							can_check_out    => $can_check_out,
 							connections      => $connecting_trains,
 							title   => "travelynx: $status->{station_name}",
 							version => $self->app->config->{version}
@@ -893,6 +912,8 @@ sub station {
 							hafas            => $use_hafas,
 							station          => $status->{station_name},
 							related_stations => $status->{related_stations},
+							user_status      => $user_status,
+							can_check_out    => $can_check_out,
 							title   => "travelynx: $status->{station_name}",
 							version => $self->app->config->{version}
 							  // 'UNKNOWN',
@@ -908,6 +929,8 @@ sub station {
 					hafas            => $use_hafas,
 					station          => $status->{station_name},
 					related_stations => $status->{related_stations},
+					user_status      => $user_status,
+					can_check_out    => $can_check_out,
 					title            => "travelynx: $status->{station_name}",
 					version => $self->app->config->{version} // 'UNKNOWN',
 				);
diff --git a/templates/departures.html.ep b/templates/departures.html.ep
index 857be749a6933f8dad97bc551a10a0115bb9b851..852f876b69aad278043f604e496224399f235f92 100644
--- a/templates/departures.html.ep
+++ b/templates/departures.html.ep
@@ -6,37 +6,50 @@
 		% }
 	</div>
 </div>
-% my $status = $self->get_user_status;
 % my $have_connections = 0;
-% if ($status->{checked_in}) {
+% if ($user_status->{checked_in}) {
 	<div class="row">
 		<div class="col s12">
 			<div class="card">
 				<div class="card-content">
 					<span class="card-title">Aktuell eingecheckt</span>
-					<p>In <%= $status->{train_type} %> <%= $status->{train_no} %>
-						ab <%= $status->{dep_name} %></p>
+					<p>In <%= $user_status->{train_type} %> <%= $user_status->{train_no} %>
+						ab <%= $user_status->{dep_name} %></p>
 				</div>
 				<div class="card-action">
-					<a class="action-checkout" data-station="<%= $eva %>" data-force="1">
-						Hier auschecken
-					</a>
+					% if ($can_check_out) {
+						<a class="action-undo" data-id="in_transit" data-checkints="<%= $user_status->{timestamp}->epoch %>"  style="margin-right: 0;">
+							<i class="material-icons left" aria-hidden="true">undo</i> Rückgängig
+						</a>
+						<a class="action-checkout right" data-station="<%= $eva %>" data-force="1">
+							Hier auschecken
+						</a>
+					% }
+					% else {
+						<a class="action-undo" data-id="in_transit" data-checkints="<%= $user_status->{timestamp}->epoch %>"  style="margin-right: 0;">
+							<i class="material-icons left" aria-hidden="true">undo</i> Rückgängig
+						</a>
+						<a class="action-checkout right" data-station="<%= $eva %>" data-force="1">
+							<i class="material-icons left">gps_off</i>
+							Hier auschecken
+						</a>
+					% }
 				</div>
 			</div>
 		</div>
 	</div>
 % }
-% elsif ($status->{cancellation} and $station eq $status->{cancellation}{dep_name}) {
+% elsif ($user_status->{cancellation} and $station eq $user_status->{cancellation}{dep_name}) {
 	<div class="row">
 		<div class="col s12">
-			%= include '_cancelled_departure', journey => $status->{cancellation};
+			%= include '_cancelled_departure', journey => $user_status->{cancellation};
 		</div>
 	</div>
 % }
-% elsif ($status->{timestamp_delta} < 180) {
+% elsif ($user_status->{timestamp_delta} < 180) {
 	<div class="row">
 		<div class="col s12">
-			%= include '_checked_out', journey => $status;
+			%= include '_checked_out', journey => $user_status;
 		</div>
 	</div>
 % }
@@ -55,7 +68,13 @@
 			% if ($have_connections) {
 				Alle Abfahrten –
 			% }
-			% if (@{$results}) {
+			% if ($user_status->{checked_in} and not $can_check_out) {
+				Diese Station liegt nicht auf der Route deines aktuellen Checkins.
+				Falls du aktuell nicht mit <b><%= $user_status->{train_type} %> <%= $user_status->{train_no} %></b> unterwegs bist, kannst du den Checkin rückgängig machen.
+				Falls es sich bei <b><%= $station %></b> um einen nicht in den Echtzeitdaten abgebildeten Zusatzhalt handelt, kannst du hier auchecken.
+				Da travelynx nicht weiß, welcher der beiden Fälle zutrifft, sind bis dahin keine neuen Checkins möglich.
+			% }
+			% elsif (@{$results}) {
 				Zug auswählen zum Einchecken.
 			% }
 			% else {
@@ -63,11 +82,13 @@
 				und maximal 120 Minuten nach Abfahrt möglich.
 			% }
 		</p>
-		% if ($hafas) {
-			%= include '_departures_hafas', results => $results;
-		% }
-		% else {
-			%= include '_departures_iris', results => $results;
+		% if (not ($user_status->{checked_in} and not $can_check_out)) {
+			% if ($hafas) {
+				%= include '_departures_hafas', results => $results;
+			% }
+			% else {
+				%= include '_departures_iris', results => $results;
+			% }
 		% }
 	</div>
 </div>