diff --git a/patches/server/General-ItemMeta-fixes.patch b/patches/server/General-ItemMeta-fixes.patch
index 3e4f93b47a..1d47f7d3bd 100644
--- a/patches/server/General-ItemMeta-fixes.patch
+++ b/patches/server/General-ItemMeta-fixes.patch
@@ -236,6 +236,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 -                this.blockEntityTag = blockEntityTag;
 +                // Paper start
 +                for (final DataComponentType type : applied) {
++                    if (CraftMetaItem.DEFAULT_HANDLED_DCTS.contains(type)) continue;
 +                    getOrEmpty(tag, type).ifPresent(value -> {
 +                        map.set(type, value);
 +                    });
@@ -403,6 +404,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        }
 +        final PatchedDataComponentMap patchedMap = new PatchedDataComponentMap(nmsBlockState.getBlock().asItem().components());
 +        patchedMap.setAll(this.components);
++        final Applicator applicator = new Applicator() {};
++        super.applyToItem(applicator);
++        patchedMap.applyPatch(applicator.build());
 +        blockEntity.applyComponents(nmsBlockState.getBlock().asItem().components(), patchedMap.asPatch());
 +
 +        // This is expected to always return a CraftBlockEntityState for the passed material: