diff --git a/http/itest/pom.xml b/http/itest/pom.xml
index a0284f9..0a4fee2 100644
--- a/http/itest/pom.xml
+++ b/http/itest/pom.xml
@@ -58,7 +58,7 @@
 		<dependency>
 			<groupId>${project.groupId}</groupId>
 			<artifactId>org.apache.felix.http.servlet-api</artifactId>
-			<version>1.1.0</version>
+			<version>1.1.1-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>${project.groupId}</groupId>
diff --git a/http/itest/src/test/java/org/apache/felix/http/itest/ResourceTest.java b/http/itest/src/test/java/org/apache/felix/http/itest/ResourceTest.java
index 02cf276..25129f4 100644
--- a/http/itest/src/test/java/org/apache/felix/http/itest/ResourceTest.java
+++ b/http/itest/src/test/java/org/apache/felix/http/itest/ResourceTest.java
@@ -53,11 +53,13 @@
 
         HttpContext context = new HttpContext()
         {
+            @Override
             public boolean handleSecurity(HttpServletRequest request, HttpServletResponse response) throws IOException
             {
                 return true;
             }
 
+            @Override
             public URL getResource(String name)
             {
                 try
@@ -75,6 +77,7 @@
                 return null;
             }
 
+            @Override
             public String getMimeType(String name)
             {
                 return null;
@@ -99,10 +102,11 @@
         assertTrue(destroyLatch.await(5, TimeUnit.SECONDS));
 
         assertResponseCode(SC_OK, testHtmlURL);
-        assertResponseCode(SC_NOT_FOUND, testURL);
+        assertResponseCode(SC_OK, testURL);
 
         unregister("/");
 
         assertResponseCode(SC_NOT_FOUND, testHtmlURL);
+        assertResponseCode(SC_NOT_FOUND, testURL);
     }
 }
