Index: /Users/robinwyles/Work/cocoon-trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java
===================================================================
--- /Users/robinwyles/Work/cocoon-trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java	(revision 706750)
+++ /Users/robinwyles/Work/cocoon-trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/sitemap/PipelineNode.java	(working copy)
@@ -33,7 +33,9 @@
 import org.apache.cocoon.components.treeprocessor.variables.VariableResolver;
 import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.sitemap.SitemapExecutor;
+import org.apache.cocoon.environment.ObjectModelHelper;
 
+
 /**
  * Handles &lt;map:pipeline&gt;
  *
@@ -108,8 +110,9 @@
             passThrough = ((Boolean) passThroughRaw).booleanValue();
         }
 
-        // Always fail on external request if pipeline is internal only.
-        if (this.internalOnly && env.isExternal()) {
+        // Always fail on external request if pipeline is internal only and uri scheme is not 'servlet'.
+        String scheme = ObjectModelHelper.getRequest(env.getObjectModel()).getScheme();
+        if (this.internalOnly && env.isExternal() && !scheme.equals("servlet")) {
             if (!this.isLast || passThrough) {
                 return false;
             }
