diff --git a/pom.xml b/pom.xml
index a9b7ae7..2dabb5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,7 @@
 		<dependency>
 			<groupId>eu.clarin.sru.fcs</groupId>
 			<artifactId>fcs-simple-endpoint</artifactId>
-			<version>1.3.0</version>
+			<version>1.4.0</version>
 		</dependency>
 		<dependency>
 			<groupId>javax.servlet</groupId>
@@ -65,7 +65,7 @@
 		<dependency>
 			<groupId>com.fasterxml.jackson.core</groupId>
 			<artifactId>jackson-databind</artifactId>
-			<version>[2.9.9,)</version>
+			<version>2.9.10.1</version>
 		</dependency>
 		<dependency>
 			<groupId>org.slf4j</groupId>
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java b/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
index e8d9974..347aaae 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapClient.java
@@ -44,8 +44,8 @@
     private static final String DEFAULT_CONTEXT_TYPE = "sentence";
     private static final String DEFAULT_FOUNDRY = "*";
 
-    private int defaultNumOfRecords = 10;
-    private int defaultMaxRecords = 10;
+    private int defaultNumOfRecords = 25;
+    private int defaultMaxRecords = 50;
 
     private static ObjectMapper objectMapper = new ObjectMapper();
     private static Logger logger =
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java b/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
index deea936..082ac5e 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapSRU.java
@@ -91,12 +91,6 @@
 //        logger.info("Query language: " + queryType);
         
         SRUVersion sruVersion = request.getVersion();
-        // EM: actually not necessary because query type is only available in SRU 2.0
-//        if (!isVersionCorrect(queryType, sruVersion)){
-//            throw new SRUException(SRUConstants.SRU_GENERAL_SYSTEM_ERROR,
-//                    "Query type "+queryType+" "+ "and version "+
-//                     sruVersion.toString() +" do not match.");
-//        }
         String version = parseVersion(sruVersion);
         
         String queryStr = request.getQuery().getRawQuery();
@@ -117,23 +111,6 @@
                 korapEndpointDescription.getAnnotationLayers());
     }
 
-    private boolean isVersionCorrect (String queryType, SRUVersion version) {
-        if (queryType.equals("fcs")){
-            if (version.equals(SRUVersion.VERSION_2_0)){
-                return true;
-            }
-        }
-        else if(queryType.equals("cql")){
-            if (version.equals(SRUVersion.VERSION_1_1) || 
-                    version.equals(SRUVersion.VERSION_1_2) || 
-                    version.equals(SRUVersion.VERSION_2_0) ){
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
     private String parseVersion(SRUVersion version) throws SRUException {
         if (version == SRUVersion.VERSION_1_1) {
             return "1.1";
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index d0a6298..1ce6ff2 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -74,7 +74,7 @@
 		<jsp-file>/_redirect.jsp</jsp-file>
 		<init-param>
 			<param-name>korapWebUrl</param-name>
-			<param-value>http://korap.ids-mannheim.de</param-value>
+			<param-value>https://korap.ids-mannheim.de</param-value>
 		</init-param>
 	</servlet>
 	<servlet-mapping>
