diff --git a/payload_consumer/install_operation_executor_unittest.cc b/payload_consumer/install_operation_executor_unittest.cc
index a7ab7e9..5b4bd6b 100644
--- a/payload_consumer/install_operation_executor_unittest.cc
+++ b/payload_consumer/install_operation_executor_unittest.cc
@@ -240,6 +240,8 @@
       source_data_, target_data_, src_extents, dst_extents, {}, {}, config);
   std::vector<uint8_t> patch_data = target_data_;  // Fake the full operation
   AnnotatedOperation aop;
+  // Zucchini is enabled only on files with certain extensions
+  aop.name = "test.so";
   ASSERT_TRUE(best_diff_generator.GenerateBestDiffOperation(
       {{InstallOperation::ZUCCHINI, 1024 * BLOCK_SIZE}}, &aop, &patch_data));
   ASSERT_EQ(InstallOperation::ZUCCHINI, aop.op.type());
diff --git a/payload_generator/deflate_utils.cc b/payload_generator/deflate_utils.cc
index 68d44d7..febc1c3 100644
--- a/payload_generator/deflate_utils.cc
+++ b/payload_generator/deflate_utils.cc
@@ -113,6 +113,9 @@
 
 // Returns whether the given file |name| has an extension listed in
 // |extensions|.
+
+}  // namespace
+
 bool IsFileExtensions(const string& name,
                       const std::initializer_list<string>& extensions) {
   return any_of(extensions.begin(), extensions.end(), [&name](const auto& ext) {
@@ -120,8 +123,6 @@
   });
 }
 
-}  // namespace
-
 ByteExtent ExpandToByteExtent(const BitExtent& extent) {
   uint64_t offset = extent.offset / 8;
   uint64_t length = ((extent.offset + extent.length + 7) / 8) - offset;
diff --git a/payload_generator/deflate_utils.h b/payload_generator/deflate_utils.h
index 752bd9f..c055876 100644
--- a/payload_generator/deflate_utils.h
+++ b/payload_generator/deflate_utils.h
@@ -93,6 +93,9 @@
 // Expands a BitExtents to a ByteExtent.
 puffin::ByteExtent ExpandToByteExtent(const puffin::BitExtent& extent);
 
+bool IsFileExtensions(const std::string& name,
+                      const std::initializer_list<std::string>& extensions);
+
 }  // namespace deflate_utils
 }  // namespace chromeos_update_engine
 #endif  // UPDATE_ENGINE_PAYLOAD_GENERATOR_DEFLATE_UTILS_H_
diff --git a/payload_generator/delta_diff_utils.cc b/payload_generator/delta_diff_utils.cc
index 5db3f42..5ccdf0b 100644
--- a/payload_generator/delta_diff_utils.cc
+++ b/payload_generator/delta_diff_utils.cc
@@ -346,6 +346,17 @@
 
 bool BestDiffGenerator::TryZucchiniAndUpdateOperation(AnnotatedOperation* aop,
                                                       brillo::Blob* data_blob) {
+  // zip files are ignored for now. We expect puffin to perform better on those.
+  // Investigate whether puffin over zucchini yields better results on those.
+  if (!deflate_utils::IsFileExtensions(
+          aop->name,
+          {".ko",
+           ".so",
+           ".art",
+           ".odex",
+           ".vdex" /*, ".capex",".jar", ".apk", ".apex"*/})) {
+    return true;
+  }
   zucchini::ConstBufferView src_bytes(old_data_.data(), old_data_.size());
   zucchini::ConstBufferView dst_bytes(new_data_.data(), new_data_.size());
 
diff --git a/payload_generator/delta_diff_utils_unittest.cc b/payload_generator/delta_diff_utils_unittest.cc
index ede6408..0c7e690 100644
--- a/payload_generator/delta_diff_utils_unittest.cc
+++ b/payload_generator/delta_diff_utils_unittest.cc
@@ -362,6 +362,8 @@
 
   brillo::Blob data = dst_data_blob;  // Fake the full operation
   AnnotatedOperation aop;
+  // Zucchini is only enabled on files with certain extensions
+  aop.name = "data.so";
 
   diff_utils::BestDiffGenerator best_diff_generator(
       src_data_blob,
