diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestDispatcherImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestDispatcherImpl.java
index b654d8f..34725e0 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestDispatcherImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/dispatch/RequestDispatcherImpl.java
@@ -39,10 +39,9 @@
     private final RequestInfo requestInfo;
     private final ServletResolution resolution;
 
-    public RequestDispatcherImpl(final ServletResolution resolution, 
+    public RequestDispatcherImpl(final ServletResolution resolution,
     		final RequestInfo requestInfo)
     {
-    	System.out.println("New dispatcher with " + requestInfo);
         this.resolution = resolution;
         this.requestInfo = requestInfo;
     }
@@ -72,7 +71,7 @@
             final FilterHandler[] filterHandlers = this.resolution.handlerRegistry.getFilterHandlers(this.resolution.handler, DispatcherType.FORWARD, requestURI);
 
             final FilterChain filterChain = new InvocationChain(resolution.handler, filterHandlers);
-            filterChain.doFilter( req, (HttpServletResponse) response);
+            filterChain.doFilter( req, response);
         }
         finally
         {
@@ -99,6 +98,6 @@
         final FilterHandler[] filterHandlers = this.resolution.handlerRegistry.getFilterHandlers(this.resolution.handler, DispatcherType.INCLUDE, requestURI);
 
         final FilterChain filterChain = new InvocationChain(resolution.handler, filterHandlers);
-        filterChain.doFilter( req, (HttpServletResponse) response);
+        filterChain.doFilter( req, response);
     }
 }
