diff --git a/t/server-test.t b/t/server-test.t
index 5a216c6..c5f48ce 100644
--- a/t/server-test.t
+++ b/t/server-test.t
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests=>8;
+use Test::More tests=>13;
 use Mojo::JSON qw(decode_json encode_json to_json);
 use REST::Client;
 use Data::Dump qw(dump);
@@ -22,6 +22,33 @@
 is( $res->{list}->[0]->[1]->{word}, "Reaktion",  "primary paradigmatic neighbour of Grund" );
 is( $res->{collocators}->[0]->{word},  "Hitchcock", "primary syntagmatic neighbour of Grund" );
 
+# "König - Mann + Frau": the neighbours of a position that belongs to no
+# single word, and no syntagmatic answer for it.
+$client->GET('http://localhost:3000/?word=K%C3%B6nig+-+Mann+%2B+Frau&json=1');
+$res = decode_json($client->responseContent());
+is( $res->{list}->[0]->[0]->{word}, "Dareios", "primary neighbour of a vector expression" );
+ok( $res->{collocators} && @{$res->{collocators}} > 0, "a vector expression has syntagmatic neighbours too" );
+
+# The syntagmatic side used to read the input weights of the first operand
+# alone: "Haus Auto" answered with the collocators of "Haus", "Auto Haus" with
+# those of "Auto". It combines them now, so the order no longer matters and
+# neither single word answer comes back unchanged.
+$client->GET('http://localhost:3000/?word=Haus&json=1');
+my $haus = decode_json($client->responseContent());
+$client->GET('http://localhost:3000/?word=Haus+Auto&json=1');
+my $haus_auto = decode_json($client->responseContent());
+$client->GET('http://localhost:3000/?word=Auto+Haus&json=1');
+my $auto_haus = decode_json($client->responseContent());
+is_deeply( [map { $_->{word} } @{$haus_auto->{collocators}}],
+           [map { $_->{word} } @{$auto_haus->{collocators}}],
+           "the syntagmatic side does not depend on the order of the operands" );
+isnt( $haus_auto->{collocators}->[0]->{max}, $haus->{collocators}->[0]->{max},
+      "and combines them rather than answering for the first" );
+
+$client->GET('http://localhost:3000/?word=Grund+Blahfasel&json=1');
+$res = decode_json($client->responseContent());
+is( $res->{unknown}, "Blahfasel", "operands outside the vocabulary are reported" );
+
 $client->GET('http://localhost:3000/getClassicCollocators?w=Grund');
 #print STDERR dump($res);
 $res = decode_json($client->responseContent());
