diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc
index f26dd48..82e589e 100644
--- a/payload_consumer/delta_performer.cc
+++ b/payload_consumer/delta_performer.cc
@@ -240,13 +240,13 @@
   const InstallPlan::Partition& install_part =
       install_plan_->partitions[num_previous_partitions + current_partition_];
   auto dynamic_control = boot_control_->GetDynamicPartitionControl();
-  partition_writer_ =
-      CreatePartitionWriter(partition,
-                            install_part,
-                            dynamic_control,
-                            block_size_,
-                            interactive_,
-                            IsDynamicPartition(install_part.name));
+  partition_writer_ = CreatePartitionWriter(
+      partition,
+      install_part,
+      dynamic_control,
+      block_size_,
+      interactive_,
+      IsDynamicPartition(install_part.name, install_plan_->target_slot));
   // Open source fds if we have a delta payload, or for partitions in the
   // partial update.
   bool source_may_exist = manifest_.partial_update() ||
@@ -1520,9 +1520,10 @@
   return true;
 }
 
-bool DeltaPerformer::IsDynamicPartition(const std::string& part_name) {
+bool DeltaPerformer::IsDynamicPartition(const std::string& part_name,
+                                        uint32_t slot) {
   return boot_control_->GetDynamicPartitionControl()->IsDynamicPartition(
-      part_name);
+      part_name, slot);
 }
 
 std::unique_ptr<PartitionWriter> DeltaPerformer::CreatePartitionWriter(
@@ -1538,7 +1539,7 @@
       dynamic_control,
       block_size_,
       interactive_,
-      IsDynamicPartition(install_part.name));
+      IsDynamicPartition(install_part.name, install_plan_->target_slot));
 }
 
 }  // namespace chromeos_update_engine
diff --git a/payload_consumer/delta_performer.h b/payload_consumer/delta_performer.h
index 31fa6b2..c54316b 100644
--- a/payload_consumer/delta_performer.h
+++ b/payload_consumer/delta_performer.h
@@ -325,7 +325,7 @@
   ErrorCode CheckTimestampError() const;
 
   // Check if partition `part_name` is a dynamic partition.
-  bool IsDynamicPartition(const std::string& part_name);
+  bool IsDynamicPartition(const std::string& part_name, uint32_t slot);
 
   // Update Engine preference store.
   PrefsInterface* prefs_;
diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index e3a3e34..9221caa 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -168,8 +168,9 @@
             << partition.name << ") on device " << part_path;
   auto success = false;
   if (dynamic_control_->UpdateUsesSnapshotCompression() &&
-      dynamic_control_->IsDynamicPartition(partition.name) &&
-      verifier_step_ == VerifierStep::kVerifyTargetHash) {
+      verifier_step_ == VerifierStep::kVerifyTargetHash &&
+      dynamic_control_->IsDynamicPartition(partition.name,
+                                           install_plan_.target_slot)) {
     success = InitializeFdVABC();
   } else {
     if (part_path.empty()) {
diff --git a/payload_consumer/filesystem_verifier_action_unittest.cc b/payload_consumer/filesystem_verifier_action_unittest.cc
index d163ec2..f618626 100644
--- a/payload_consumer/filesystem_verifier_action_unittest.cc
+++ b/payload_consumer/filesystem_verifier_action_unittest.cc
@@ -419,7 +419,7 @@
       .WillByDefault(Return(true));
   ON_CALL(dynamic_control, OpenCowReader(_, _, _))
       .WillByDefault(Return(nullptr));
-  ON_CALL(dynamic_control, IsDynamicPartition(part.name))
+  ON_CALL(dynamic_control, IsDynamicPartition(part.name, _))
       .WillByDefault(Return(true));
 
   EXPECT_CALL(dynamic_control, UpdateUsesSnapshotCompression())
