diff --git a/Cargo.toml b/Cargo.toml
index 5ae5d7600afe0aceb450ab6a6b9d2f3b17138352..b3d16a68f2abcefaae6809c5e44adc033c4b9d28 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -27,4 +27,4 @@ path = "examples/main.rs"
 base64  = "0.10"
 xml-rs  = "0.8"
 libflate = "0.1.18"
-zstd = { version = "0.5", optional = true }
+zstd = { version = "0.9", optional = true }
diff --git a/tests/lib.rs b/tests/lib.rs
index 5fa1dc1b83e2aa1ab98132f375fcc77cfc42485f..6ac07b41dc56954226cb1a7dab739808cd4f7911 100644
--- a/tests/lib.rs
+++ b/tests/lib.rs
@@ -14,10 +14,12 @@ fn test_gzip_and_zlib_encoded_and_raw_are_the_same() {
     let z = parse_map_without_source(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap();
     let g = parse_map_without_source(&Path::new("assets/tiled_base64_gzip.tmx")).unwrap();
     let r = parse_map_without_source(&Path::new("assets/tiled_base64.tmx")).unwrap();
+    let zstd = parse_map_without_source(&Path::new("assets/tiled_base64_zstandard.tmx")).unwrap();
     let c = parse_map_without_source(&Path::new("assets/tiled_csv.tmx")).unwrap();
     assert_eq!(z, g);
     assert_eq!(z, r);
     assert_eq!(z, c);
+    assert_eq!(z, zstd);
 
     if let LayerData::Finite(tiles) = &c.layers[0].tiles {
         assert_eq!(tiles.len(), 100);