diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
index e0fa187..e35aa18 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/context/ServletContextImpl.java
@@ -238,7 +238,7 @@
 
     public String getRealPath(String name)
     {
-        URL url = getResource(normalizePath(name));
+        URL url = getResource(name);
         if (url == null)
         {
             return null;
@@ -253,7 +253,7 @@
 
     public URL getResource(String path)
     {
-        return this.httpContext.getResource(normalizePath(path));
+        return this.httpContext.getResource(normalizeResourcePath(path));
     }
 
     public InputStream getResourceAsStream(String path)
@@ -416,7 +416,7 @@
             return null;
         }
 
-        String normalizedPath = path.trim().replaceAll("/+", "/");
+        String normalizedPath = normalizeResourcePath(path);
         if (normalizedPath.startsWith("/") && (normalizedPath.length() > 1))
         {
             normalizedPath = normalizedPath.substring(1);
@@ -424,4 +424,15 @@
 
         return normalizedPath;
     }
+
+    private String normalizeResourcePath(String path)
+    {
+        if ( path == null)
+        {
+            return null;
+        }
+        String normalizedPath = path.trim().replaceAll("/+", "/");
+
+        return normalizedPath;
+    }
 }
diff --git a/http/base/src/test/java/org/apache/felix/http/base/internal/context/ServletContextImplTest.java b/http/base/src/test/java/org/apache/felix/http/base/internal/context/ServletContextImplTest.java
index c82b336..17b025d 100644
--- a/http/base/src/test/java/org/apache/felix/http/base/internal/context/ServletContextImplTest.java
+++ b/http/base/src/test/java/org/apache/felix/http/base/internal/context/ServletContextImplTest.java
@@ -470,7 +470,7 @@
         URL url = getClass().getResource("resource.txt");
         Assert.assertNotNull(url);
 
-        Mockito.when(this.httpContext.getResource("resource.txt")).thenReturn(url);
+        Mockito.when(this.httpContext.getResource("/resource.txt")).thenReturn(url);
         Assert.assertNull(this.context.getResource("/notfound.txt"));
         Assert.assertEquals(url, this.context.getResource("/resource.txt"));
     }
@@ -481,7 +481,7 @@
         URL url = getClass().getResource("resource.txt");
         Assert.assertNotNull(url);
 
-        Mockito.when(this.httpContext.getResource("resource.txt")).thenReturn(url);
+        Mockito.when(this.httpContext.getResource("/resource.txt")).thenReturn(url);
         Assert.assertNull(this.context.getResourceAsStream("/notfound.txt"));
         Assert.assertNotNull(this.context.getResourceAsStream("/resource.txt"));
     }
