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 92b1a284b368e0d65c51ee4724bf750a00383bc0..1457542b0e7b138602f6de06f1d54156ce67e28f 100644
--- a/tests/lib.rs
+++ b/tests/lib.rs
@@ -19,10 +19,12 @@ fn test_gzip_and_zlib_encoded_and_raw_are_the_same() {
     let z = read_from_file(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap();
     let g = read_from_file(&Path::new("assets/tiled_base64_gzip.tmx")).unwrap();
     let r = read_from_file(&Path::new("assets/tiled_base64.tmx")).unwrap();
+    let zstd = read_from_file(&Path::new("assets/tiled_base64_zstandard.tmx")).unwrap();
     let c = read_from_file(&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);