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());
