diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamer.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamer.java
index 408901b..a284565 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamer.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamer.java
@@ -58,7 +58,7 @@
      * @param resource
      *         to stream
      * @param providedChecksum
-     *         checksum from URL (or null to not validate against checksum, which is normal for modules)
+     *         checksum from URL (or null/blank to not validate against checksum, which is normal for modules)
      * @param options
      *         enable or disable certain features
      * @see StreamableResourceSource
@@ -73,7 +73,7 @@
      *         content to stream
      * @param providedChecksum
      *         checksum provided (in the URL) to validate against the {@linkplain org.apache.tapestry5.services.assets.StreamableResource#getChecksum()} actual checksum}
-     *         for the resource, may be blank to not validate against the checksum
+     *         for the resource, may be null/blank to not validate against the checksum
      * @param options
      *         enable or disable certain features
      * @return true if the request was handled (even if sending a {@link HttpServletResponse#SC_NOT_MODIFIED} response),
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
index 51f6122..363c0b7 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResourceStreamerImpl.java
@@ -92,6 +92,7 @@
         this.contextAssetFactory = contextAssetFactory;
     }
 
+    @Override
     public boolean streamResource(final Resource resource, final String providedChecksum, final Set<Options> options) throws IOException
     {
         if (!resource.exists())
@@ -103,7 +104,7 @@
             return true;
         }
 
-        final boolean compress = providedChecksum.startsWith("z");
+        final boolean compress = providedChecksum != null && providedChecksum.startsWith("z");
 
         return tracker.perform("Streaming " + resource + (compress ? " (compressed)" : ""), new IOOperation<Boolean>()
         {
@@ -120,6 +121,7 @@
         });
     }
 
+    @Override
     public boolean streamResource(StreamableResource streamable, String providedChecksum, Set<Options> options) throws IOException
     {
         return streamResource(null, streamable, providedChecksum, options);
@@ -128,12 +130,11 @@
     public boolean streamResource(Resource resource, StreamableResource streamable, String providedChecksum, Set<Options> options) throws IOException
     {
         assert streamable != null;
-        assert providedChecksum != null;
         assert options != null;
 
         String actualChecksum = streamable.getChecksum();
 
-        if (providedChecksum.length() > 0 && !providedChecksum.equals(actualChecksum))
+        if (providedChecksum != null && !providedChecksum.isEmpty() && !providedChecksum.equals(actualChecksum))
         {
             
             // TAP5-2185: Trying to find the wrongly-checksummed resource in the classpath and context,
