diff --git a/copy/copy.go b/copy/copy.go
index <HASH>..<HASH> 100644
--- a/copy/copy.go
+++ b/copy/copy.go
@@ -702,6 +702,9 @@ func (c *copier) copyOneImage(ctx context.Context, policyContext *signature.Poli
 			return nil, "", "", fmt.Errorf("Uploading manifest failed, attempted the following formats: %s", strings.Join(errs, ", "))
 		}
 	}
+	if targetInstance != nil {
+		targetInstance = &retManifestDigest
+	}
 
 	if options.SignBy != "" {
 		newSig, err := c.createSignature(manifestBytes, options.SignBy)
Fix writing signatures for updated multi-arch image components

If a per-arch image from a multi-arch image has had its manifest
updated, use the updated manifest digest for PutSignatures.