diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
index be090b0..26b246c 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
@@ -59,11 +59,10 @@
 /**
  * TODO for release:
  * - Rename to "Kalamar-Plugin-Export".
- * - Remove 'plugin' root folder.
- * - 100 matches as default for export form.
  * - Improve Readme.
  * - Add opaque source, in case source is an internal IP.
  * - Include limitation to form.
+ * - Localize javascript induced "with" in the title.
  *
  * TODO:
  * - Localize RTF export.
@@ -667,6 +666,8 @@
         String port = prop.getProperty("asset.port", "");
         String host = prop.getProperty("asset.host", "korap.ids-mannheim.de");
         String path = prop.getProperty("asset.path", "");
+        String defaultHitc = prop.getProperty("conf.default_hitc", "100");
+        int maxHitc = Integer.parseInt(prop.getProperty("conf.max_exp_limit", "10000"));
 
         UriBuilder uri = UriBuilder.fromPath("")
             .host(host)
@@ -679,6 +680,8 @@
             uri = uri.port(Integer.parseInt(port));
 
         templateData.put("assetPath", uri.build());
+        templateData.put("defaultHitc", defaultHitc);
+        templateData.put("maxHitc", maxHitc);
 
         // There is an error code to pass
         if (code != null) {
diff --git a/src/main/resources/assets/templates/export.ftl b/src/main/resources/assets/templates/export.ftl
index 748a878..4f6c481 100644
--- a/src/main/resources/assets/templates/export.ftl
+++ b/src/main/resources/assets/templates/export.ftl
@@ -107,7 +107,8 @@
 
           <fieldset class="form-line">
             <legend>${dict.hitc}</legend>
-            <input name="hitc" id="hitc" type="number" min="1" max="10000" value="20" />
+            <input name="hitc" id="hitc" type="number" min="1" max="10000" value="${defaultHitc}" />
+            <p style="font-size: 80%">${dict.max_hitc} <tt>${maxHitc}</tt></p>
           </fieldset>
 
           <progress id="progress" value="0" max="100" style="display: none;">0%</progress>
diff --git a/src/main/resources/exportPlugin.conf b/src/main/resources/exportPlugin.conf
index 96d0ddb..a76c44d 100644
--- a/src/main/resources/exportPlugin.conf
+++ b/src/main/resources/exportPlugin.conf
@@ -31,6 +31,8 @@
 # conf.file_dir=./files/
 # Defaults to the system's temp directory
 
+conf.default_hitc = 100
+
 #####################
 # RTF configuration #
 #####################
diff --git a/src/main/resources/locales/export.properties b/src/main/resources/locales/export.properties
index 221e9ba..bb54079 100644
--- a/src/main/resources/locales/export.properties
+++ b/src/main/resources/locales/export.properties
@@ -1,5 +1,6 @@
 export = Export
 file_format = File format
 hitc = Limit to the first matches:
+max_hitc = Maximum number of exportable matches:
 export_button = Exportieren
 banner = Experimental
\ No newline at end of file
diff --git a/src/main/resources/locales/export_de.properties b/src/main/resources/locales/export_de.properties
index e70ed27..e454d15 100644
--- a/src/main/resources/locales/export_de.properties
+++ b/src/main/resources/locales/export_de.properties
@@ -4,5 +4,6 @@
 
 file_format = Dateiformat
 hitc = Einschr\u00e4nken auf die ersten Treffer:
+max_hitc = Maximal zu exportierende Treffer:
 export_button = Exportieren
 banner = Experimentell
\ No newline at end of file
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
index a3dc27b..b6f1336 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
@@ -67,6 +67,30 @@
         assertTrue("HTTP Body (de)", str.contains("Dateiformat"));
     };
 
+    @Test
+    public void testFormHtmlMaxHitc () {
+
+        // Check german
+        Response responsehtml = target("/export").request()
+            .header("Accept-Language","fr-CH, fr;q=0.9, de;q=0.8, en;q=0.7, *;q=0.5").get();
+        assertEquals("HTTP Code",
+                     Status.OK.getStatusCode(), responsehtml.getStatus());
+        String str = responsehtml.readEntity(String.class);
+        assertTrue("HTTP Body (de)", str.contains("value=\"100\""));
+        assertTrue("HTTP Body (de)", str.contains("Maximal zu exportierende Treffer: <tt>10.000</tt>"));
+
+        
+        // Check English
+        responsehtml = target("/export").request()
+            .header("Accept-Language","fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5").get();
+        assertEquals("HTTP Code",
+                     Status.OK.getStatusCode(), responsehtml.getStatus());
+        str = responsehtml.readEntity(String.class);
+        assertTrue("HTTP Body (en)", str.contains("Maximum number of exportable matches: <tt>10.000</tt>"));
+
+    };
+
+    
     
     @Test
     public void testFormHtmlAssets () {
