diff --git a/Cargo.toml b/Cargo.toml
index 9df6526242c0d3df38218de3b17796d9a8c4a69e..d230fa15df64da6904450de5b9a484768d33a7ce 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,6 +20,6 @@ name = "example"
 path = "examples/main.rs"
 
 [dependencies]
-flate2 = "0.2.13"
 base64 = "0.1.1"
 xml-rs = "0.3.0"
+flate2 = "1.0.1"
diff --git a/src/lib.rs b/src/lib.rs
index f48223d7feb984efa721f8230bfc4357f524a606..83123845a73f5724f42854fc4d31eca343c1d6a3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -802,15 +802,9 @@ fn decode_zlib(data: Vec<u8>) -> Result<Vec<u8>, TiledError> {
 }
 
 fn decode_gzip(data: Vec<u8>) -> Result<Vec<u8>, TiledError> {
-    let mut gzd = match GzDecoder::new(BufReader::new(&data[..])) {
-        Ok(gzd) => gzd,
-        Err(e) => return Err(TiledError::DecompressingError(e))
-    };
+    let mut gzd = GzDecoder::new(BufReader::new(&data[..]));
     let mut data = Vec::new();
-    match gzd.read_to_end(&mut data) {
-        Ok(_v) => {},
-        Err(e) => return Err(TiledError::DecompressingError(e))
-    }
+    gzd.read_to_end(&mut data).map_err(|e| TiledError::DecompressingError(e))?;
     Ok(data)
 }