diff --git a/docs/pack.html b/docs/pack.html
index 0a8700d..39e9b10 100644
--- a/docs/pack.html
+++ b/docs/pack.html
@@ -236,8 +236,11 @@
     <tr>
       <td valign="top">framed</td>
       <td valign="top">Whether to use
-      the <a href="https://github.com/google/snappy/blob/master/framing_format.txt">framing
-     format</a>.</td>
+        the <a href="https://github.com/google/snappy/blob/master/framing_format.txt">framing
+        format</a>.<br/>  When setting this to false only resources of
+        known (uncompressed) size can be compressed (for example
+        files).
+      </td>
       <td align="center" valign="top">No, defaults to true.</td>
     </tr>
   </table>
diff --git a/src/main/org/apache/ant/compress/taskdefs/PackBase.java b/src/main/org/apache/ant/compress/taskdefs/PackBase.java
index 9c5d6de..4f63b91 100644
--- a/src/main/org/apache/ant/compress/taskdefs/PackBase.java
+++ b/src/main/org/apache/ant/compress/taskdefs/PackBase.java
@@ -232,6 +232,13 @@
         }
     }
 
+    /**
+     * @since Apache Compress Antlib 1.5
+     */
+    protected final Resource getSrc() {
+        return src;
+    }
+
     public static interface ResourceWrapper {
         CommonsCompressCompressorResource wrap(Resource dest);
     }
diff --git a/src/main/org/apache/ant/compress/taskdefs/Snappy.java b/src/main/org/apache/ant/compress/taskdefs/Snappy.java
index 76528e4..f41e2e8 100644
--- a/src/main/org/apache/ant/compress/taskdefs/Snappy.java
+++ b/src/main/org/apache/ant/compress/taskdefs/Snappy.java
@@ -18,9 +18,14 @@
 
 package org.apache.ant.compress.taskdefs;
 
+import java.io.IOException;
+import java.io.OutputStream;
+
 import org.apache.ant.compress.resources.SnappyResource;
 import org.apache.ant.compress.resources.CommonsCompressCompressorResource;
 import org.apache.ant.compress.util.SnappyStreamFactory;
+import org.apache.commons.compress.compressors.CompressorOutputStream;
+import org.apache.commons.compress.compressors.snappy.SnappyCompressorOutputStream;
 import org.apache.tools.ant.types.Resource;
 
 /**
@@ -51,5 +56,13 @@
     }
 
     private class InnerSnappyStreamFactory extends SnappyStreamFactory {
+        @Override
+        public CompressorOutputStream getCompressorStream(OutputStream stream)
+            throws IOException {
+            if (isFramed() || getSrc() == null || getSrc().getSize() < 0) {
+                return super.getCompressorStream(stream);
+            }
+            return new SnappyCompressorOutputStream(stream, getSrc().getSize());
+        }
     }
 }
diff --git a/src/tests/antunit/unsnappy-test.xml b/src/tests/antunit/unsnappy-test.xml
index d8970a8..c8b0ff0 100644
--- a/src/tests/antunit/unsnappy-test.xml
+++ b/src/tests/antunit/unsnappy-test.xml
@@ -47,6 +47,17 @@
                          actual="${output}/asf-logo.gif"/>
   </target>
 
+  <target name="testSnappyTaskWithoutFraming" depends="setUp">
+    <cmp:snappy src="../resources/asf-logo.gif"
+                destfile="${output}/asf-logo.gif.sz"
+                framed="false"/>
+    <cmp:unsnappy src="${output}/asf-logo.gif.sz"
+                  dest="${output}/asf-logo.gif"
+                  framed="false"/>
+    <au:assertFilesMatch expected="../resources/asf-logo.gif"
+                         actual="${output}/asf-logo.gif"/>
+  </target>
+
   <target name="testNativeSnappy" depends="setUp">
     <cmp:unsnappy src="../resources/asf-logo.gif.sz"
                 dest="${output}/asf-logo.gif" />
