diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
index 8c938b5..41fe378 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPipeTest.java
@@ -41,9 +41,11 @@
 
     private int port = 6071;
 
-    private String pipeJson, pipeWithParamJson, pipeTimeout;
+    private String pipeJson, pipeWithParamJson, pipeTimeout, termMapperJson;
 
     private String glemmUri = "http://localhost:" + port + "/glemm";
+	private String termMapperUri = "http://localhost:" + port
+			+ "/term-mapper?foundry=corenlp";
 
     public SearchPipeTest () throws URISyntaxException, IOException {
         pipeJson = IOUtils.toString(
@@ -58,6 +60,11 @@
                 ClassLoader.getSystemResourceAsStream(
                         "pipe-output/with-param.jsonld"),
                 StandardCharsets.UTF_8);
+        
+        termMapperJson = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "pipe-output/term-mapper.jsonld"),
+                StandardCharsets.UTF_8);
     }
 
     @BeforeEach
@@ -99,6 +106,40 @@
         assertEquals("{test}", br.readLine());
     }
 
+	@Test
+	public void testRetrieveMatchInfoWithResponsePipe ()
+			throws KustvaktException {
+		
+		mockClient.reset()
+        .when(request().withMethod("POST")
+        		.withPath("/term-mapper")
+        		.withQueryStringParameter("foundry", "corenlp")
+                .withHeaders(
+                        new Header("Content-Type",
+                                "application/json; charset=utf-8"),
+                        new Header("Accept", "application/json")))
+        .respond(response()
+                .withHeader(new Header("Content-Type",
+                        "application/json; charset=utf-8"))
+                .withBody(termMapperJson).withStatusCode(200));
+
+		Response response = target().path(API_VERSION).path("corpus")
+				.path("GOE").path("AGA").path("01784").path("p36-37")
+				.queryParam("foundry", "tt")
+				.queryParam("response-pipes", termMapperUri)
+				.request().get();
+		assertEquals(Status.OK.getStatusCode(), response.getStatus());
+		String entity = response.readEntity(String.class);
+		JsonNode node = JsonUtils.readTree(entity);
+		
+		assertTrue(node.at("/snippet").asText().startsWith(
+				"<span class=\"context-left\"></span><span class=\"match\">"
+				+ "<span title=\"corenlp/p:ART\">der</span> <span title="
+				+ "\"corenlp/p:ADJA\">alte</span> <span title="
+				+ "\"corenlp/p:ADJA\">freie</span> <span title="
+				+ "\"corenlp/p:NN\">Weg</span>"));
+	}
+    
     @Test
     public void testSearchWithPipes ()
             throws IOException, KustvaktException, URISyntaxException {
diff --git a/src/test/resources/pipe-output/term-mapper.jsonld b/src/test/resources/pipe-output/term-mapper.jsonld
new file mode 100644
index 0000000..63d5b4a
--- /dev/null
+++ b/src/test/resources/pipe-output/term-mapper.jsonld
@@ -0,0 +1,81 @@
+{
+  "@context" : "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+  "meta" : {
+    "version" : "Krill-0.64.1"
+  },
+  "hasSnippet" : true,
+  "hasTokens" : false,
+  "matchID" : "match-GOE/AGA/01784-p36-37",
+  "context" : {
+    "left" : [ "token", 0 ],
+    "right" : [ "token", 0 ]
+  },
+  "snippet" : "<span class=\"context-left\"></span><span class=\"match\"><span title=\"corenlp/p:ART\">der</span> <span title=\"corenlp/p:ADJA\">alte</span> <span title=\"corenlp/p:ADJA\">freie</span> <span title=\"corenlp/p:NN\">Weg</span> <span title=\"corenlp/p:APPR\">nach</span> <span title=\"corenlp/p:NE\">Mainz</span> <span title=\"corenlp/p:VAFIN\">war</span> <span title=\"corenlp/p:VVPP\">gesperrt</span>, <span title=\"corenlp/p:PPER\">ich</span> <span title=\"corenlp/p:VMFIN\">mußte</span> <span title=\"corenlp/p:APPR\">über</span> <span title=\"corenlp/p:ART\">die</span> <span title=\"corenlp/p:NN\">Schiffbrücke</span> <span title=\"corenlp/p:APPR\">bei</span> <span title=\"corenlp/p:NE\">Rüsselsheim</span>; <span title=\"corenlp/p:APPR\">in</span> <span title=\"corenlp/p:NE\">Ginsheim</span> <span title=\"corenlp/p:VVFIN\">ward</span> <mark><span title=\"corenlp/p:VVPP\">gefüttert</span></mark>; <span title=\"corenlp/p:ART\">der</span> <span title=\"corenlp/p:NN\">Ort</span> <span title=\"corenlp/p:VAFIN\">ist</span> <span title=\"corenlp/p:ADV\">sehr</span> <span title=\"corenlp/p:ADJA\">zerschossen</span>; <span title=\"corenlp/p:ADV\">dann</span> <span title=\"corenlp/p:APPR\">über</span> <span title=\"corenlp/p:ART\">die</span> <span title=\"corenlp/p:NN\">Schiffbrücke</span> <span title=\"corenlp/p:APPR\">auf</span> <span title=\"corenlp/p:ART\">die</span> <span title=\"corenlp/p:NN\">Nonnenaue</span>, <span title=\"corenlp/p:PWAV\">wo</span> <span title=\"corenlp/p:PIDAT\">viele</span> <span title=\"corenlp/p:NN\">Bäume</span> <span title=\"corenlp/p:VVINF\">niedergehauen</span> <span title=\"corenlp/p:VVFIN\">lagen</span>, <span title=\"corenlp/p:ADV\">sofort</span> <span title=\"corenlp/p:APPR\">auf</span> <span title=\"corenlp/p:ART\">dem</span> <span title=\"corenlp/p:ADJA\">zweiten</span> <span title=\"corenlp/p:NN\">Teil</span> <span title=\"corenlp/p:ART\">der</span> <span title=\"corenlp/p:NN\">Schiffbrücke</span> <span title=\"corenlp/p:APPR\">über</span> <span title=\"corenlp/p:ART\">den</span> <span title=\"corenlp/p:ADJA\">größern</span> <span title=\"corenlp/p:NN\">Arm</span> <span title=\"corenlp/p:ART\">des</span> <span title=\"corenlp/p:NE\">Rheins</span>.</span><span class=\"context-right\"></span>",
+  "fields" : [ {
+    "@type" : "koral:field",
+    "key" : "ID"
+  }, {
+    "@type" : "koral:field",
+    "key" : "textSigle",
+    "type" : "type:string",
+    "value" : "GOE/AGA/01784"
+  }, {
+    "@type" : "koral:field",
+    "key" : "corpusID"
+  }, {
+    "@type" : "koral:field",
+    "key" : "author",
+    "type" : "type:text",
+    "value" : "Goethe, Johann Wolfgang von"
+  }, {
+    "@type" : "koral:field",
+    "key" : "title",
+    "type" : "type:text",
+    "value" : "Belagerung von Mainz"
+  }, {
+    "@type" : "koral:field",
+    "key" : "subTitle"
+  }, {
+    "@type" : "koral:field",
+    "key" : "textClass"
+  }, {
+    "@type" : "koral:field",
+    "key" : "pubPlace",
+    "type" : "type:string",
+    "value" : "München"
+  }, {
+    "@type" : "koral:field",
+    "key" : "pubDate",
+    "type" : "type:date",
+    "value" : "1982"
+  }, {
+    "@type" : "koral:field",
+    "key" : "availability",
+    "type" : "type:string",
+    "value" : "CC-BY-SA"
+  }, {
+    "@type" : "koral:field",
+    "key" : "layerInfos",
+    "type" : "type:store",
+    "value" : "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens"
+  }, {
+    "@type" : "koral:field",
+    "key" : "docSigle",
+    "type" : "type:string",
+    "value" : "GOE/AGA"
+  }, {
+    "@type" : "koral:field",
+    "key" : "corpusSigle",
+    "type" : "type:string",
+    "value" : "GOE"
+  } ],
+  "textSigle" : "GOE/AGA/01784",
+  "author" : "Goethe, Johann Wolfgang von",
+  "title" : "Belagerung von Mainz",
+  "pubPlace" : "München",
+  "pubDate" : "1982",
+  "availability" : "CC-BY-SA",
+  "layerInfos" : "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+  "docSigle" : "GOE/AGA",
+  "corpusSigle" : "GOE"
+}
\ No newline at end of file
