diff --git a/Changelog b/Changelog
index ea41b1bb96f0148af74eb7745c9151746cf3f7d8..e2b35a81dfe87eabdb36f235165d8362103cb125 100644
--- a/Changelog
+++ b/Changelog
@@ -1,6 +1,7 @@
 git HEAD
 
     * Route::Part: Add {arrival,departure}_{route,station}maps accessors
+    * efa: Add -m, --maps option
 
 Travel::Routing::DE::VRR 2.05 - Mon Mar 03 2014
 
diff --git a/bin/efa b/bin/efa
index 0bbfda2290b2f84459bcdca6cac62988087075c2..f63c9d21781e88e9fec79d3d70804af73ec09ffc 100755
--- a/bin/efa
+++ b/bin/efa
@@ -125,6 +125,12 @@ sub display_connection {
 		}
 	}
 
+	if ( $opt->{maps} ) {
+		for my $m ( $c->departure_routemaps, $c->departure_stationmaps ) {
+			say "# $m";
+		}
+	}
+
 	printf(
 		"%-5s ab  %-30s %-20s %s\n",
 		$c->departure_time, $c->departure_stop_and_platform,
@@ -138,9 +144,8 @@ sub display_connection {
 		}
 	}
 
-	printf( "%-5s an  %s\n\n",
-		$c->arrival_time, $c->arrival_stop_and_platform,
-	);
+	printf( "%-5s an  %s\n", $c->arrival_time, $c->arrival_stop_and_platform, );
+	print "\n";
 
 	return;
 }
@@ -162,6 +167,7 @@ GetOptions(
 		full-route|f
 		help|h
 		ignore-info|I:s
+		maps|M
 		max-change|m=i
 		num-connections|n=i
 		prefer|P=s
@@ -257,6 +263,15 @@ for my $i ( 0 .. $#routes ) {
 	for my $c ( $route->parts ) {
 		display_connection($c);
 	}
+
+	# last one needs to be shown separately
+	if ( $opt->{maps} ) {
+		my $c = ( $route->parts )[-1];
+		for my $m ( $c->arrival_routemaps, $c->arrival_stationmaps ) {
+			say "# $m";
+		}
+	}
+
 	if ( $i != $#routes ) {
 		print "---------\n\n";
 	}
@@ -345,6 +360,11 @@ these are not always available.
 
 Print connections with at most I<number> interchanges
 
+=item B<-M>|B<--maps>
+
+Output links to maps of transfer paths and transfer stations where
+available.
+
 =item B<-n>|B<--num-connections> I<number>
 
 Return up to I<number> connections.  If unset, the default of the respective