diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index af3bfc05e1..871cb1e3f2 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -2852,7 +2852,9 @@ void PresetCollection::save_current_preset(const std::string &new_name, bool det else if (m_type == Preset::TYPE_FILAMENT) { preset.config.option("filament_settings_id", true)->values[0] = new_name; // Generate a unique filament_id for user presets that don't have one yet (PR #13315). - if (preset.filament_id.empty()) { + // Also regenerate when a derived preset still carries an inherited vendor id + // (non-P), otherwise AMS sync falls back to the vendor preset (Issue #52). + if (preset.filament_id.empty() || preset.filament_id.front() != 'P') { boost::uuids::detail::md5 hash; boost::uuids::detail::md5::digest_type digest; hash.process_bytes(new_name.data(), new_name.size());