diff --git a/bin/efa b/bin/efa
index 57d2f297bec170b134d2e8a6f76d583cfe33b74e..10340ea8fa0600a59903116430595f492ee179e0 100755
--- a/bin/efa
+++ b/bin/efa
@@ -22,8 +22,7 @@ my $raw;
 my $cons;
 my $groupsize = 8;
 my $offset;
-my @from;
-my @to;
+my (@from, @to, @via);
 my ($time, $time_for);
 my $date;
 my $debug = 0;
@@ -34,6 +33,7 @@ $post{type_destination} = 'stop';
 GetOptions(
 	'from=s{2}' => \@from,
 	'to=s{2}'   => \@to,
+	'via=s{2}'  => \@via,
 	'time=s'    => \$time,
 	'date=s'    => \$date,
 	'debug'     => \$debug,
@@ -48,6 +48,9 @@ unless (@to == 2 and @from == 2) {
 
 @post{'place_origin','name_origin'} = @from;
 @post{'place_destination','name_destination'} = @to;
+if (@via == 2) {
+	@post{'place_via','name_via'} = @via;
+}
 
 if ($time) {
 	@post{'itdTimeHour','itdTimeMinute'} = split(/:/, $time);
@@ -156,6 +159,10 @@ Departure place
 
 Arrival place
 
+=time B<--via> I<city> I<stop>
+
+Travel via this place
+
 =item B<--debug>
 
 Display debug information (additional post requests sent to the site,
diff --git a/provides/zsh/completions/_efa b/provides/zsh/completions/_efa
index 096e928a831e28f164bc7a253bb20b6d241b9a99..64fc6c49f71907b332597976b68e02203b25714a 100644
--- a/provides/zsh/completions/_efa
+++ b/provides/zsh/completions/_efa
@@ -4,6 +4,7 @@ typeset -a arguments
 arguments=(
 	'--from:city: :stop: '
 	'--to:city: :stop: '
+	'--via:city: :stop: '
 	'--debug'
 	'--time:time'
 	'--time-for:event:(arrival departure)'