diff --git a/pom.xml b/pom.xml
index 87b3f92..448850d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 
 	<groupId>de.mannheim.ids</groupId>
 	<artifactId>KorapSRU</artifactId>
-	<version>1.0.6</version>
+	<version>1.0.7</version>
 	<packaging>war</packaging>
 
 	<name>KorapSRU</name>
@@ -14,7 +14,7 @@
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-compiler-plugin</artifactId>
-				<version>3.13.0</version>
+				<version>3.14.0</version>
 				<configuration>
 					<source>1.8</source>
 					<target>1.8</target>
@@ -48,7 +48,7 @@
 		<dependency>
 			<groupId>eu.clarin.sru.fcs</groupId>
 			<artifactId>fcs-simple-endpoint</artifactId>
-			<version>1.7.0</version>
+			<version>1.8.0</version>
 		</dependency>
 		<dependency>
 			<groupId>javax.servlet</groupId>
diff --git a/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java b/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
index 58d9ced..a3b9952 100644
--- a/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
+++ b/src/main/java/de/ids_mannheim/korap/sru/KorapEndpointDescription.java
@@ -21,6 +21,7 @@
 import eu.clarin.sru.server.fcs.EndpointDescription;
 import eu.clarin.sru.server.fcs.Layer;
 import eu.clarin.sru.server.fcs.ResourceInfo;
+import eu.clarin.sru.server.fcs.ResourceInfo.AvailabilityRestriction;
 import eu.clarin.sru.server.fcs.utils.SimpleEndpointDescriptionParser;
 
 /**
@@ -132,11 +133,12 @@
             description = new HashMap<String, String>();
             description.put("de", r.getDescription());
 
-            ResourceInfo ri = new ResourceInfo(r.getResourceId(), r.getTitles(),
-                    description, null,KorapSRU.korapWebUri,
-                    Arrays.asList(r.getLanguages()), dataviews,
-                    this.getSupportedLayers(), null);
-            resourceList.add(ri);
+			ResourceInfo ri = new ResourceInfo(r.getResourceId(), r.getTitles(),
+					description, null, KorapSRU.korapWebUri,
+					Arrays.asList(r.getLanguages()),
+					AvailabilityRestriction.NONE, dataviews,
+					this.getSupportedLayers(), null);
+			resourceList.add(ri);
         }
 
         return resourceList;
@@ -229,4 +231,10 @@
             return false;
         }
     }
+
+	@Override
+	public ResourceInfo getResource (String pid) throws SRUException {
+		// TODO Auto-generated method stub
+		return null;
+	}
 }
