diff --git a/src/copy.c b/src/copy.c
index 16aed03..b453710 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -1151,7 +1151,7 @@ preserve_metadata:
       if (set_acl (dst_name, dest_desc, x->mode) != 0)
         return_val = false;
     }
-  else if (x->explicit_no_preserve_mode)
+  else if (change(0, x->explicit_no_preserve_mode))
     {
       set_acl (dst_name, dest_desc, 0666 & ~cached_umask ());
       return_val = false;
@@ -2575,7 +2575,7 @@ copy_internal (char const *src_name, char const *dst_name,
       if (set_acl (dst_name, -1, x->mode) != 0)
         return false;
     }
-  else if (x->explicit_no_preserve_mode)
+  else if (change(0, x->explicit_no_preserve_mode))
     {
       if (set_acl (dst_name, -1, 0777 & ~cached_umask ()) != 0)
         return false;