diff --git a/source/blender/editors/sculpt_paint/sculpt.cc b/source/blender/editors/sculpt_paint/sculpt.cc index 306e2e148cd..51e9517634f 100644 --- a/source/blender/editors/sculpt_paint/sculpt.cc +++ b/source/blender/editors/sculpt_paint/sculpt.cc @@ -7315,7 +7315,13 @@ void write_translations(const Sculpt &sd, apply_crazyspace_to_translations(ss.deform_imats, verts, translations); } - apply_translations(translations, verts, positions_orig); + const Mesh &mesh = *static_cast(object.data); + const KeyBlock *active_key = BKE_keyblock_from_object(&object); + const bool relative_shapekey_active = active_key != nullptr && active_key != mesh.key->refkey; + if (!relative_shapekey_active) { + apply_translations(translations, verts, positions_orig); + } + apply_translations_to_shape_keys(object, verts, translations, positions_orig); }