diff --git a/modules/order/commerce_order.module b/modules/order/commerce_order.module
index 16e3526..77f4ef1 100644
--- a/modules/order/commerce_order.module
+++ b/modules/order/commerce_order.module
@@ -343,6 +343,9 @@ function commerce_order_commerce_customer_profile_can_delete($profile) {
  * handled as a clone of the original profile. This ensures that editing a
  * profile on a separate order or through the admin UI after completing an order
  * will not cause the original order to lose essential data.
+ *
+ * All field names present in the $profile->_ignore_fields array are ignored
+ * in the comparison and do not trigger profile duplication.
  */
 function commerce_order_commerce_customer_profile_presave($profile) {
   // Only perform this check when updating an existing profile.
@@ -392,8 +395,12 @@ function commerce_order_commerce_customer_profile_presave($profile) {
         }
       }
       elseif ($profile->{$field_name} != $unchanged_profile->{$field_name}) {
-        $field_change = TRUE;
-        break;
+        // If the field name is present in the $profile->_ignore_fields array,
+        // ignore it, so that it doesn't trigger profile duplication.
+        if (empty($profile->_ignore_fields) || !in_array($field_name, $profile->_ignore_fields)) {
+          $field_change = TRUE;
+          break;
+        }
       }
     }
 
