                     innerData.release()
                 }
             }
-            
-            if let current = ret {
-                ret = dispatch_data_create_concat(current, chunk)
-            } else {
-                ret = chunk
-            }
+            ret = dispatch_data_create_concat(ret, chunk)
         }
-        return ret ?? dispatch_data_empty
+        return ret
     }
     
     @nonobjc var dispatchValue: dispatch_data_t {

private extension NSData {
    
    private func wrapToDispatchData(copy copy: Bool) -> dispatch_data_t {
        var ret: dispatch_data_t?
        enumerateByteRangesUsingBlock { (bytes, byteRange, _) in
            let chunk: dispatch_data_t
            if copy {


extension Data {
    
    public init(_ data: NSData) {
        try! self.init(data.dispatchValue)
    }
    
}
