diff --git a/core/pom.xml b/core/pom.xml
index 30e7d79..6233fab 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -3,17 +3,17 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Kustvakt-core</artifactId>
-	<version>0.63</version>
+	<version>0.63.1</version>
 
 	<properties>
 		<java.version>1.8</java.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<spring.version>5.3.0</spring.version>
+		<spring.version>5.3.4</spring.version>
 		<jersey.version>1.19.4</jersey.version>
-		<jetty.version>9.4.34.v20201102</jetty.version>
-		<hibernate.version>5.4.25.Final</hibernate.version>
+		<jetty.version>9.4.36.v20210114</jetty.version>
+		<hibernate.version>5.4.28.Final</hibernate.version>
 		<flyway.version>7.4.0</flyway.version>
-		<log4j.version>2.13.3</log4j.version>
+		<log4j.version>2.14.0</log4j.version>
 		<krill.version>[0.59.3,)</krill.version>
 		<koral.version>[0.37,)</koral.version>
 	</properties>
@@ -241,7 +241,7 @@
 		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>
-			<version>1.18.16</version>
+			<version>1.18.18</version>
 		</dependency>
 		<dependency>
 			<groupId>joda-time</groupId>
diff --git a/core/src/main/java/de/ids_mannheim/korap/service/SearchService.java b/core/src/main/java/de/ids_mannheim/korap/service/SearchService.java
index 43114cb..ea09a02 100644
--- a/core/src/main/java/de/ids_mannheim/korap/service/SearchService.java
+++ b/core/src/main/java/de/ids_mannheim/korap/service/SearchService.java
@@ -70,6 +70,11 @@
         this.graphDBhandler = new ClientsHandler(builder.build());
     }
 
+    public String getKrillVersion () {
+        return searchKrill.getIndex().getVersion();
+
+    }
+    
     @SuppressWarnings("unchecked")
     public String serializeQuery (String q, String ql, String v, String cq,
             Integer pageIndex, Integer startPage, Integer pageLength,
diff --git a/core/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java b/core/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
index 2760810..1e75b0e 100644
--- a/core/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
+++ b/core/src/main/java/de/ids_mannheim/korap/web/controller/SearchController.java
@@ -89,7 +89,7 @@
         m.put("latest_api_version", config.getCurrentVersion());
         m.put("supported_api_versions", config.getSupportedVersions());
         m.put("kustvakt_version", ServiceInfo.getInfo().getVersion());
-        m.put("krill_version", ServiceInfo.getInfo().getKrillVersion());
+        m.put("krill_version", searchService.getKrillVersion());
         m.put("koral_version", ServiceInfo.getInfo().getKoralVersion());
         try {
             return Response.ok(JsonUtils.toJSON(m)).build();
diff --git a/full/Changes b/full/Changes
index 04fa3cc..df3469f 100644
--- a/full/Changes
+++ b/full/Changes
@@ -1,3 +1,7 @@
+# version 0.63.1
+2021-02-22
+   - Updated libraries.
+
 # version 0.63
 26/10/2020
    - Updated dependency of nimbus-jose-jwt and oauth2-oidc-sdk (diewald)
diff --git a/full/pom.xml b/full/pom.xml
index 826041a..ec6770c 100644
--- a/full/pom.xml
+++ b/full/pom.xml
@@ -3,12 +3,12 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Kustvakt-full</artifactId>
-	<version>0.63</version>
+	<version>0.63.1</version>
 	<properties>
 		<java.version>1.8</java.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<jersey.version>1.19.4</jersey.version>
-		<hibernate.version>5.4.25.Final</hibernate.version>
+		<hibernate.version>5.4.28.Final</hibernate.version>
 	</properties>
 	<profiles>
 		<profile>
@@ -149,12 +149,12 @@
 		<dependency>
 			<groupId>de.ids_mannheim.korap</groupId>
 			<artifactId>Kustvakt-core</artifactId>
-			<version>[0.63.,)</version>
+			<version>[0.63.1,)</version>
 		</dependency>
 		<dependency>
 			<groupId>de.ids_mannheim.korap</groupId>
 			<artifactId>Kustvakt-core</artifactId>
-			<version>[0.63.,)</version>
+			<version>[0.63.1,)</version>
 			<classifier>tests</classifier>
       		<type>test-jar</type>
       		<scope>test</scope>
@@ -168,7 +168,7 @@
 		<dependency>
 			<groupId>com.unboundid</groupId>
 			<artifactId>unboundid-ldapsdk</artifactId>
-			<version>5.1.1</version>
+			<version>5.1.3</version>
 		</dependency>
 
 		<!-- Hibernate -->
@@ -259,21 +259,21 @@
 		<dependency>
 			<groupId>com.nimbusds</groupId>
 			<artifactId>nimbus-jose-jwt</artifactId>
-			<version>9.1.2</version>
+			<version>9.1.5</version>
 		</dependency>
 
 		<!-- OpenId -->
 		<dependency>
 			<groupId>com.nimbusds</groupId>
 			<artifactId>oauth2-oidc-sdk</artifactId>
-			<version>8.25</version>
+			<version>8.28.4</version>
 		</dependency>
 
 		<!-- Project Lombok -->
 		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>
-			<version>1.18.16</version>
+			<version>1.18.18</version>
 			<scope>provided</scope>
 		</dependency>
 		
diff --git a/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java b/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
index 115405e..8ef8070 100644
--- a/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
+++ b/full/src/main/java/de/ids_mannheim/korap/config/NamedVCLoader.java
@@ -4,6 +4,7 @@
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Arrays;
 import java.util.zip.GZIPInputStream;
 
 import javax.management.RuntimeErrorException;
@@ -77,6 +78,8 @@
             throw new IOException("Directory " + dir + " is not valid");
         }
 
+        jlog.info(Arrays.toString(d.list()));
+        
         for (File file : d.listFiles()) {
             if (!file.exists()) {
                 throw new IOException("File " + file + " is not found.");
diff --git a/full/src/main/resources/ehcache.xml b/full/src/main/resources/ehcache.xml
index da9acda..2801a59 100644
--- a/full/src/main/resources/ehcache.xml
+++ b/full/src/main/resources/ehcache.xml
@@ -59,6 +59,6 @@
 		maxBytesLocalDisk="1G"
 		diskExpiryThreadIntervalSeconds = "120" > 
 		<persistence strategy="localTempSwap"/>
-		<sizeOfPolicy maxDepth="2000" maxDepthExceededBehavior="abort" />
+		<sizeOfPolicy maxDepth="3000" maxDepthExceededBehavior="abort" />
 	</cache>        
 </ehcache>
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
index 783e417..e9fdd12 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
@@ -14,11 +14,14 @@
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.utils.ServiceInfo;
+import de.ids_mannheim.korap.web.SearchKrill;
 
 public class InfoControllerTest extends SpringJerseyTest {
 
     @Autowired
     private KustvaktConfiguration config;
+    @Autowired
+    private SearchKrill krill;
 
     @Test
     public void testInfo () throws KustvaktException {
@@ -36,7 +39,7 @@
 
         assertEquals(ServiceInfo.getInfo().getVersion(),
                 node.at("/kustvakt_version").asText());
-        assertEquals(ServiceInfo.getInfo().getKrillVersion(),
+        assertEquals(krill.getIndex().getVersion(),
                 node.at("/krill_version").asText());
         assertEquals(ServiceInfo.getInfo().getKoralVersion(),
                 node.at("/koral_version").asText());
diff --git a/lite/pom.xml b/lite/pom.xml
index 46484fd..19f869c 100644
--- a/lite/pom.xml
+++ b/lite/pom.xml
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ids_mannheim.korap</groupId>
 	<artifactId>Kustvakt-lite</artifactId>
-	<version>0.63</version>
+	<version>0.63.1</version>
 	<properties>
 		<java.version>1.8</java.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -156,12 +156,12 @@
 		<dependency>
 			<groupId>de.ids_mannheim.korap</groupId>
 			<artifactId>Kustvakt-core</artifactId>
-			<version>[0.63.,)</version>
+			<version>[0.63.1,)</version>
 		</dependency>
 		<dependency>
 			<groupId>de.ids_mannheim.korap</groupId>
 			<artifactId>Kustvakt-core</artifactId>
-			<version>[0.63.,)</version>
+			<version>[0.63.1,)</version>
 			<classifier>tests</classifier>
       		<type>test-jar</type>
       		<scope>test</scope>
@@ -184,7 +184,7 @@
 		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>
-			<version>1.18.16</version>
+			<version>1.18.18</version>
 			<scope>provided</scope>
 		</dependency>
 		<!-- https://mvnrepository.com/artifact/org.codehaus.mojo/cobertura-maven-plugin -->
diff --git a/lite/src/test/java/de/ids_mannheim/korap/web/service/InfoControllerTest.java b/lite/src/test/java/de/ids_mannheim/korap/web/service/InfoControllerTest.java
index 53a76b4..95df495 100644
--- a/lite/src/test/java/de/ids_mannheim/korap/web/service/InfoControllerTest.java
+++ b/lite/src/test/java/de/ids_mannheim/korap/web/service/InfoControllerTest.java
@@ -14,12 +14,16 @@
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.utils.ServiceInfo;
+import de.ids_mannheim.korap.web.SearchKrill;
 
 public class InfoControllerTest extends LiteJerseyTest {
 
     @Autowired
     private KustvaktConfiguration config;
 
+    @Autowired
+    private SearchKrill krill;
+    
     @Test
     public void testInfo () throws KustvaktException {
         ClientResponse response = resource().path(API_VERSION).path("info")
@@ -36,7 +40,7 @@
 
         assertEquals(ServiceInfo.getInfo().getVersion(),
                 node.at("/kustvakt_version").asText());
-        assertEquals(ServiceInfo.getInfo().getKrillVersion(),
+        assertEquals(krill.getIndex().getVersion(),
                 node.at("/krill_version").asText());
         assertEquals(ServiceInfo.getInfo().getKoralVersion(),
                 node.at("/koral_version").asText());
