diff --git a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
index f16bed2..680f6a7 100644
--- a/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
+++ b/plugin/src/main/java/de/ids_mannheim/korap/plkexport/IdsExportService.java
@@ -57,23 +57,12 @@
 import freemarker.template.Template;
 
 /**
- * TODO
- * This is only a draft!!!
- * Has to be integrated in Nils sourcecode
- * 
- * Export works only for rtf, JSON has to be integrated
- * 
- * Delete the temp file of the export at the end
- * 
- * Get variable cutoff from URL
- * 
- * Right now, the web service returns one page (cutoff=1) or all
- * pages.
- * There is now limitations of hits. ("Beschränken auf xy Treffer")
- * does not work right now.
- * 
- * ------------------------------------------------------------
- * Works with the export demo
+ * TODO:
+ * - Paging export works only for rtf, JSON has to be integrated
+ * - Delete the temp file of the export at the end
+ * - Get variable cutoff from URL
+ * - Right now, the web service returns one page (cutoff=1) or
+ *   all pages.
  */
 
 @Path("/")
@@ -130,15 +119,18 @@
         @FormParam("q") String q,
         @FormParam("ql") String ql,
         @FormParam("islimit") String il,
+        @FormParam("cutoff") String cutoffStr,
         @FormParam("hitc") int hitc
         ) throws IOException {
-        
+
+        // These parameters are required
         String[][] params = {
             { "format", format },
             { "q", q },
             { "ql", ql }
         };
 
+        // Check that all parameters are available
         for (int i = 0; i < params.length; i++) {
             if (params[i][1] == null || params[i][1].trim().isEmpty())
                 throw new BadRequestException(
@@ -147,14 +139,16 @@
                     .entity("Parameter " + "\""
                             + params[i][0] + "\"" + " is missing or empty")
                     .build());
-        }
+        };
 
 
         int totalhits;
-
-        //TODO cutoff to try out, retrieve it  later:
+        
+        // Retrieve cutoff value
         boolean cutoff = false;
-        //boolean cutoff = true;
+        if (cutoffStr != null && (cutoffStr.equals("true") || cutoffStr.equals("1"))) {
+            cutoff = true;
+        };
 
         ResponseBuilder builder = null;
         Client client = ClientBuilder.newClient();
@@ -259,8 +253,10 @@
 
         // format == json
         if (format.equals("json")) {
-            builder = Response.ok(resp);
-            builder.type(MediaType.APPLICATION_JSON);
+            if (cutoff) {
+                builder = Response.ok(resp);
+                builder.type(MediaType.APPLICATION_JSON);
+            };
         }
 
         // format == rtf
@@ -274,8 +270,9 @@
              * Get total results
              */
             totalhits = actualObj.at("/meta").get("totalResults").asInt();
-
-            // If only one page should be exported there is no need for an temporary export file
+            
+            // If only one page should be exported there is no need
+            // for a temporary export file
             if (cutoff) {
                 String rtfresp = getRtf(resp);
                 builder = Response.ok(rtfresp);
@@ -302,17 +299,19 @@
                 File expTmp = createTempFile("idsexppl-", format);
                 FileWriter fw = new FileWriter(expTmp, true);
                 BufferedWriter bw = new BufferedWriter(fw);
-                //better delete after it is not needed anymore
+                // better delete after it is not needed anymore
                 expTmp.deleteOnExit();
             
                 // position of pages, 1 = first page, 2 = middle pages, 3 = last page
                 int pos = 0;
                 // String urlorg = url;
-                uri.queryParam("page", "{PAGE}");
+                uri.queryParam("offset", "{offset}");
                 for (int i = 1; i <= pg; i++) {
                     // url = urlorg + "&page=" + i;
                     // resource = client.target(url);
-                    resource = client.target(uri.build(i));
+                    resource = client.target(
+                        uri.build((i * ExWSConf.PAGE_SIZE) - ExWSConf.PAGE_SIZE)
+                        );
                     resp = resource.request(MediaType.APPLICATION_JSON)
                         .get(String.class);
 
@@ -465,7 +464,9 @@
     };
     
   
-
+    /*
+     * Iterate over all matches and get an RTF section
+     */
     public String getRtfSection (LinkedList list, int pos, int dr) {
         LinkedList matchlist = list;
         RtfTextPara par = p((" "));
@@ -482,11 +483,11 @@
         
         //TODO Add export plugin version to JSON output?
         //
-         // TODO 
-         // The output rtf file lacks style, 
-         // but I'm thinking about changing the jRTF library to OpenRTF https://github.com/LibrePDF/OpenRTF, 
-         // because jRTF is very rudimentary, so I only list the information in a section right now.
-         //
+        // TODO 
+        // The output rtf file lacks style, 
+        // but I'm thinking about changing the jRTF library to OpenRTF https://github.com/LibrePDF/OpenRTF, 
+        // because jRTF is very rudimentary, so I only list the information in a section right now.
+        //
 
         RtfTextPara pv = getVersion();
         listp.add(pv);
@@ -494,7 +495,7 @@
         for (int i = 0; i < j; i++) {
             MatchExport matchakt = (MatchExport) matchlist.get(i);
             reference = " (" + matchakt.getTitle() + " von "
-                    + matchakt.getAuthor() + " (" + matchakt.getPubDate() + ")";
+                + matchakt.getAuthor() + " (" + matchakt.getPubDate() + ")";
             textSigle = "[" + matchakt.getTextSigle() + "]";
             String leftSnippet = matchakt.getSnippetO().getLeft();
             String rightSnippet = matchakt.getSnippetO().getRight();
@@ -504,69 +505,73 @@
             listp.add(par);
         }
 
-
         String rtfresp = rtf().section(listp).toString();
         return rtfresp;
-
-    }
+    };
 
     
     public String writeRTF (LinkedList list) throws IOException {
         String rtfresp =  getRtfSection(list, 0, 0);
         return rtfresp;
-    }
+    };
     
+
     public void writeRTF (LinkedList list, File file, FileWriter filewriter,
-            BufferedWriter bw, int pos, int dr) throws IOException {
+                          BufferedWriter bw, int pos, int dr) throws IOException {
    
         String rtfresp = getRtfSection(list, pos,dr);
         
         switch (pos) {
 
-            case 1: {
-                rtfresp = rtfresp.substring(0, rtfresp.length() - 1);
-                bw.append(rtfresp);
-                bw.flush();
-                break;
-            }
-
-            case 2: {
-                rtfresp = rtfresp.substring(143, rtfresp.length() - 1);
-                bw.append(rtfresp);
-                bw.flush();
-                break;
-            }
-
-            case 3: {
-                rtfresp = rtfresp.substring(143);
-                bw.append(rtfresp);
-                bw.flush();
-                bw.close();
-                break;
-            }
-
-            default: {
-                //TODO Error Handling
-                System.out.println("Invalid pos Parameter");
-                break;
-            }
+        case 1: {
+            rtfresp = rtfresp.substring(0, rtfresp.length() - 1);
+            bw.append(rtfresp);
+            bw.flush();
+            break;
         }
 
+        case 2: {
+            rtfresp = rtfresp.substring(143, rtfresp.length() - 1);
+            bw.append(rtfresp);
+            bw.flush();
+            break;
+        }
+
+        case 3: {
+            rtfresp = rtfresp.substring(143);
+            bw.append(rtfresp);
+            bw.flush();
+            bw.close();
+            break;
+        }
+
+        default: {
+            //TODO Error Handling
+            System.out.println("Invalid pos Parameter");
+            break;
+        }
+        };
+
         return;
+    };
 
-    }
 
-    /**
-     *  Get version for RTF document 
-     *  */
+    /*
+     * Get version for RTF document 
+     */
     public RtfTextPara getVersion () {
-        Version version = new Version(ExWSConf.VERSION_MAJOR,
-                ExWSConf.VERSION_MINOR, ExWSConf.VERSION_PATCHLEVEL, null, null,
-                null);
+        Version version = new Version(
+            ExWSConf.VERSION_MAJOR,
+            ExWSConf.VERSION_MINOR,
+            ExWSConf.VERSION_PATCHLEVEL,
+            null,
+            null,
+            null
+            );
         RtfTextPara parv = p("@Institut für Deutsche Sprache, Mannheim", ("\n"),
-                "IDSExportPlugin-Version:  ", version, "\n");
+                             "IDSExportPlugin-Version:  ", version, "\n");
         return parv;
-    }
+    };
 
 
     /*
@@ -587,7 +592,8 @@
         };
 
         return "";
-    }
+    };
+
 
     /**
      * Creates file to hold the result temporarily
@@ -597,11 +603,11 @@
         try {
             File temp = File.createTempFile(name, "." + suffix);
             return temp;
-
+            
         }
         catch (IOException e) {
             e.printStackTrace();
         }
         return null;
-    }
-}
+    };
+};
diff --git a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
index 329461c..c3c4036 100644
--- a/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
+++ b/plugin/src/test/java/de/ids_mannheim/korap/plkexport/IdsExportServiceTest.java
@@ -109,6 +109,7 @@
         frmap.add("fname", filenamej);
         frmap.add("format", "json");
         frmap.add("q", "Wasser");
+        frmap.add("cutoff", "true");
         frmap.add("ql", "poliqarp");
 
         String message;
@@ -214,6 +215,7 @@
         frmap.add("format", "json");
         frmap.add("q", "????");
         frmap.add("ql", "poliqarp");
+        frmap.add("cutoff", "true");
 
         String message;
 
@@ -244,6 +246,7 @@
         frmap.add("format", "rtf");
         frmap.add("q", "Wasser");
         frmap.add("ql", "poliqarp");
+        frmap.add("cutoff", "true");
         String filenamer = "dateiRtf";
         frmap.putSingle("fname", filenamer);
 
@@ -269,6 +272,7 @@
         Response resp;
         String fvalue;
         frmap.remove("fname");
+        frmap.remove("cutoff");
         MultivaluedHashMap<String, String> map = new MultivaluedHashMap<String, String>();
         map.putAll(frmap);
 
@@ -319,6 +323,7 @@
         frmap.add("format", "rtf");
         frmap.add("q", "????");
         frmap.add("ql", "poliqarp");
+        frmap.add("cuttoff", "true");
         String filenamer = "dateiRtf";
         frmap.putSingle("fname", filenamer);
 
@@ -326,10 +331,60 @@
 
         Response responsertf = target("/export").request()
             .post(Entity.form(frmap));
+
         assertEquals("Request RTF: Http Response should be 200: ",
                 Status.OK.getStatusCode(), responsertf.getStatus());
     }
 
+    @Test
+    public void testExportWsRTFPaging () {
+
+        mockClient.reset().when(
+            request()
+            .withMethod("GET")
+            .withPath("/api/v1.0/search")
+            .withQueryStringParameter("q", "Plagegeist")
+            .withQueryStringParameter("count", "5")
+            .withQueryStringParameter("offset", "5")
+            )
+            .respond(
+                response()
+                .withHeader("Content-Type: application/json; charset=utf-8")
+                .withBody(getFixture("response_plagegeist_2.json"))
+                .withStatusCode(200)
+                );
+
+        mockClient.when(
+            request()
+            .withMethod("GET")
+            .withPath("/api/v1.0/search")
+            .withQueryStringParameter("q", "Plagegeist")
+            )
+            .respond(
+                response()
+                .withHeader("Content-Type: application/json; charset=utf-8")
+                .withBody(getFixture("response_plagegeist_1.json"))
+                .withStatusCode(200)
+                );
+        
+        MultivaluedHashMap<String, String> frmap = new MultivaluedHashMap<String, String>();
+        frmap.add("format", "rtf");
+        frmap.add("q", "Plagegeist");
+        frmap.add("ql", "poliqarp");
+        String filenamer = "dateiPagingRtf";
+        frmap.putSingle("fname", filenamer);
+
+        Response responsertf = target("/export").request()
+            .post(Entity.form(frmap));
+        assertEquals("Request RTF: Http Response should be 200: ",
+                Status.OK.getStatusCode(), responsertf.getStatus());
+
+        String str = responsertf.readEntity(String.class);
+        assertTrue("Page 1 content", str.contains("Ironhoof"));
+        assertTrue("Page 2 content", str.contains("Sinologie"));
+    }
+
+    
 
     @Test
     public void testExportWsProxyProblem () {
@@ -343,8 +398,7 @@
         frmap.add("format", "json");
         frmap.add("q", "????");
         frmap.add("ql", "poliqarp");
-
-        String message;
+        frmap.add("cuttoff", "true");
 
         Response responsejson = target("/export").request()
                 .post(Entity.form(frmap));
diff --git a/plugin/src/test/resources/fixtures/response_plagegeist_1.json b/plugin/src/test/resources/fixtures/response_plagegeist_1.json
new file mode 100644
index 0000000..13d0e70
--- /dev/null
+++ b/plugin/src/test/resources/fixtures/response_plagegeist_1.json
@@ -0,0 +1 @@
+{"@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld","meta":{"cutOff":false,"count":5,"startIndex":0,"timeout":10000,"context":{"left":["token",40],"right":["token",40]},"fields":["ID","UID","textSigle","corpusID","author","title","subTitle","textClass","pubPlace","pubDate","availability","layerInfos","docSigle","corpusSigle"],"version":"0.59.2","benchmark":"0.330334022 s","totalResults":9,"serialQuery":"tokens:s:Plagegeist","itemsPerPage":5},"query":{"@type":"koral:token","wrap":{"@type":"koral:term","match":"match:eq","layer":"orth","key":"Plagegeist","foundry":"opennlp","rewrites":[{"@type":"koral:rewrite","src":"Kustvakt","operation":"operation:injection","scope":"foundry"}]}},"collection":{"operands":[{"@type":"koral:doc","match":"match:eq","type":"type:regex","value":"CC-BY.*","key":"availability"},{"@type":"koral:doc","match":"match:eq","value":"WUD17","key":"corpusSigle"}],"@type":"koral:docGroup","operation":"operation:and"},"matches":[{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>1 Tag gesperrt. 24h Urlaub.^^ LG;--  17:40, 11. Jan. 2011 (CET) Danke ich habe die nahezu zeitgleichen VMs von Dir und Ironhoof gesehen. Ob es ein Grund zum Jubeln ist, sei dahin gestellt. Immerhin habe ich für 24 Stunden einen &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">&quot; weniger. Sag mal, zum Kölner Stammtisch isses doch nicht so weit ... wie wär's ? Besten  17:49, 11. Jan. 2011 (CET) Er wurde gesperrt. Nach dem Theater hier zurecht. ABER: auch deine Beiträge hier, die er versuchte zu löschen, sorgen nicht für<span class=\"more\"></span></span>","matchID":"match-WUD17/G59/34284-p4238-4239","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/G59/34284","author":"Umherirrender, u.a.","docSigle":"WUD17/G59","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","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Gruß Tom/Archiv/2011","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>Sitte, die heute nur mehr aus dem süddeutschen Raum bekannt ist, war – nach Aussage vieler Sagen – auch im Rheinland üblich. e) Der Stüpp als Aufhocker Von den 30 Stüpp-Sagen enthalten nur 12 das Phänomen des Aufhockers. Ein Aufhocker ist ein </span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">, der europaweit vorkommt. Er überfällt den Menschen immer auf dunklen Wegen (z.B. Hohlwegen) oder sehr oft nachts, wenn er an berüchtigten, d.h. angsteinflößenden Orten vorbeikommt. Friedrich Ranke analysiert den Aufhocker als reales Erlebnis, entstanden aus der Angst. Das<span class=\"more\"></span></span>","matchID":"match-WUD17/C53/60524-p736-737","UID":0,"textClass":"kultur literatur","textSigle":"WUD17/C53/60524","author":"Capitanezza, u.a.","docSigle":"WUD17/C53","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","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Capitanezza","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>deshalb so glatt durch, weil ich einige Tage verreist war. Ich habe Wiederherstellung beantragt. Vielen Dank für Deine geduldigen Bemühungen und mfG  13:49, 28. Jun. 2008 (CEST) Zur Kenntnis: Analemma zieht &quot;durch die Welt der WP-Benutzer&quot; und meint, mich als </span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\"> oder anders bei anderen Nutzern titulieren zu müssen... als weiteres Beispiel für andere &quot;nette Aktionen&quot; die letzte aktuelle Aktion: Nachträgliche Veränderung von meinem eigenen Diskussionsbeitrag...na danke auch ;-) Gruß-- 18:21, 28. Jun. 2008 (CEST) @NebMaatRe: Ich hab das &quot;Umherziehen&quot; natürlich<span class=\"more\"></span></span>","matchID":"match-WUD17/J34/49397-p19826-19827","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/J34/49397","author":"BlueCücü, u.a.","docSigle":"WUD17/J34","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","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Jesi/Archiv 2008/II","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>Vielen Dank  für deine Aufmerksamkeit und Mühe, mit der du gestern den Holocaustleugner abgeschmettert hast. Ab sofort ist &quot;Lump&quot; in meinem Sprachgebrauch eine Ehrenbezeichnung geworden... Lieben Gruß - 19:44, 20. Feb. 2008 (CET)timestamp  Keine Ursache. Eine andere Ehrenbezeichnung war mal &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">&quot;. Vielleich ist das genau die richtige Art, mit so was umzugehen. Liebe Grüße  21:30, 20. Feb. 2008 (CET)timestamp  Michel Lippert Hoi Hozro, habe heute anhand meiner wenigen Infos und des franz. Wikiartikels die Type bearbeitet. Ergänzt habe<span class=\"more\"></span></span>","matchID":"match-WUD17/H29/31485-p10141-10142","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/H29/31485","author":"Lómelinde, u.a.","docSigle":"WUD17/H29","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","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Hozro/Archiv0","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>Unterstützung, habe gesehen, daß LaPalma nun gesperrt ist. Inzwischen habe ich auch den hauptsächlich von Dir bearbeiteten Artikel über Velikovsky gelesen. Sehr interessant. Den kannte ich noch gar nicht! Herzlicher Gruß, -- 15:20, 28. Nov. 2007 (CET) Naja, mir ging der &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">&quot; auch gehörig auf die Nerven. Der Artikel Velikovsky stammt nicht von mir, hatte ihn nur von ähnlichen Visionen eines anderen &quot;Plagegeists&quot; befreit. Ist zwar stilistisch immer noch überarbeitungsbedürftig, aber die &quot;Science-Fiction&quot; ist erstmal raus. Gruß-- 19:33, 28. Nov. 2007 (CET<span class=\"more\"></span></span>","matchID":"match-WUD17/I78/98882-p2700-2701","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/I78/98882","author":"Ingochina, u.a.","docSigle":"WUD17/I78","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","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Ingochina/Archiv","pubDate":"2017-07-01","corpusSigle":"WUD17"}]}
diff --git a/plugin/src/test/resources/fixtures/response_plagegeist_2.json b/plugin/src/test/resources/fixtures/response_plagegeist_2.json
new file mode 100644
index 0000000..709176b
--- /dev/null
+++ b/plugin/src/test/resources/fixtures/response_plagegeist_2.json
@@ -0,0 +1 @@
+{"@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld","meta":{"cutOff":true,"count":5,"startIndex":5,"timeout":10000,"context":{"left":["token",40],"right":["token",40]},"fields":["ID","UID","textSigle","corpusID","author","title","subTitle","textClass","pubPlace","pubDate","availability","layerInfos","docSigle","corpusSigle"],"version":"0.59.2","benchmark":"0.424958683 s","totalResults":-1,"serialQuery":"tokens:s:Plagegeist","itemsPerPage":5},"query":{"@type":"koral:token","wrap":{"@type":"koral:term","match":"match:eq","layer":"orth","key":"Plagegeist","foundry":"opennlp","rewrites":[{"@type":"koral:rewrite","src":"Kustvakt","operation":"operation:injection","scope":"foundry"}]}},"collection":{"operands":[{"@type":"koral:doc","match":"match:eq","type":"type:regex","value":"CC-BY.*","key":"availability"},{"@type":"koral:doc","match":"match:eq","value":"WUD17","key":"corpusSigle"}],"@type":"koral:docGroup","operation":"operation:and"},"matches":[{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>und wie ich in einem Buch von Bernhard Karlgren gelesen habe, wird da eine alte Bedeutung &quot;Blutegel&quot; für dieses Zeichen angenommen, bzw. auch andere Ungeziefer konnten wohl gemeint sein. Der ma-Teil des Worts wurde also ursprünglich wahrscheinlich im Sinne von &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">&quot; verwendet, folglich war 蚂蚁 ursprünglich frei übersetzt eine &quot;Sch...-Ameise&quot; ;-) -- 18:21, 30. Apr. 2007 (CEST) Hallo Allgaeuer, mag sein, dass es für dich ein Hammer ist, aber es ist Stand der aktuellen Forschung in der Sinologie. Schriften von Karlgren u.<span class=\"more\"></span></span>","matchID":"match-WUD17/N15/17364-p3803-3804","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/N15/17364","author":"Ningling, u.a.","docSigle":"WUD17/N15","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Ningling/Archiv2006-07","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>vielleicht eine neue Schloss-Einstein-Antragswelle unterbinden.-- 07:36, 23. Jun. 2008 (CEST)  Mentor  Lieber Kriddl, als ich mir die Liste der Mentoren anschaute, fiel mein Augenmerk auf Dich als Jurist. Könntest Du mir jungen Wikipedianer (aber nicht jung an Jahren) helfen, einen </span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">, der mich seit meiner ersten Teilnahme als IP mobbt, helfen? Wenn ja, so schau Dir doch als Einstieg bitte meinen Wiederherstellungs-Antrag zum Artikel Meton-Periode an: WP:LP, 26.Juni 08. Dort ist nicht nur der Sachverhalt, in den man sich nicht<span class=\"more\"></span></span>","matchID":"match-WUD17/K35/39955-p16114-16115","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/K35/39955","author":"TaxonBot, u.a.","docSigle":"WUD17/K35","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Kriddl/Archiv","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>schnell einarbeiten kann, sondern auch etwas über die zu schlichtenden Hintergründe von mir zu lesen. Solltest Du Dich zusätzlich als Bearbeiter von Löschfragen angesprochen fühlen, wäre ich Dir doppelt dankbar. mfG  15:52, 28. Jun. 2008 (CEST) Hallo, ich bin der &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">&quot;, der Analemma nicht &quot;mobbt&quot;, sondern auf seine fachlichen und technischen Schwierigkeiten hingewiesen hatte. Mobbing ? Analemma bat mich sogar um einen Quellennachweis für die Lunationsdauer, die &quot;er nirgendwo finden konnte&quot;....hatte ich sodann erledigt. Ein Fachmann hat keine Schwierigkeiten, das zu<span class=\"more\"></span></span>","matchID":"match-WUD17/K35/39955-p16197-16198","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/K35/39955","author":"TaxonBot, u.a.","docSigle":"WUD17/K35","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Kriddl/Archiv","pubDate":"2017-07-01","corpusSigle":"WUD17"},{"snippet":"<span class=\"context-left\"><span class=\"more\"></span>Quellennachweis für die Lunationsdauer, die &quot;er nirgendwo finden konnte&quot;....hatte ich sodann erledigt. Ein Fachmann hat keine Schwierigkeiten, das zu finden. Nunja, und für die Nachfragen nach Quellen (die er bis heute nicht liefern konnte), bekomme ich dann den Stempel &quot;</span><span class=\"match\"><mark>Plagegeist</mark></span><span class=\"context-right\">, Mobber&quot; etc. aufgedrückt...womit er auch bei vielen Benutzern &quot;hausieren&quot; geht. Ich frage mich, wer hier mobbt ? ... als Beispiel die letzte aktuelle Aktion: Nachträgliche Veränderung von meinem eigenen Diskussionsbeitrag...na danke auch ;-)... Es grüßt -- 18:10, 28. Jun. 2008 (CEST) Hm<span class=\"more\"></span></span>","matchID":"match-WUD17/K35/39955-p16258-16259","UID":0,"textClass":"staat-gesellschaft biographien-interviews","textSigle":"WUD17/K35/39955","author":"TaxonBot, u.a.","docSigle":"WUD17/K35","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"URL:http://de.wikipedia.org","availability":"CC-BY-SA","title":"Benutzer Diskussion:Kriddl/Archiv","pubDate":"2017-07-01","corpusSigle":"WUD17"}]}
