diff --git a/crates/pptx/src/opc.rs b/crates/pptx/src/opc.rs
--- a/crates/pptx/src/opc.rs
+++ b/crates/pptx/src/opc.rs
@@ -93,7 +93,7 @@ impl Package {
                 }
             }
             total = total.saturating_add(data.len() as u64);
-            parts.insert(name.to_ascii_lowercase(), (name, data));
+            parts.insert(norm(&name), (name, data));
         }
         Ok(Package { parts, ct_cache: std::sync::OnceLock::new() })
     }
@@ -499,6 +499,13 @@ mod tests {
         assert!(p.get("e").is_some());
     }
 
+    #[test]
+    fn backslash_zip_entry_names_are_found() {
+        let z = zip_of(&[("PPT\\Slides\\Slide1.xml", 3)]);
+        let p = Package::open(&z).unwrap();
+        assert!(p.get("ppt/slides/slide1.xml").is_some());
+    }
+
     #[test]
     fn xml_bytes_applies_the_xml_limit() {
         let z = zip_of(&[("small.xml", 10)]);
