diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index fefcb4f35ad..078e30ce016 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -439,9 +439,12 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { if (event.getChecked()) { if (LanguageSettingsManager.isWorkspaceProvider(checkedProvider) && !LanguageSettingsManager.isPreferShared(id)) { - ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(checkedProvider); - if (rawProvider instanceof ILanguageSettingsEditableProvider) { - newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false); + newProvider = getInitialProvider(id); + if(newProvider == null) { + ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(checkedProvider); + if (rawProvider instanceof ILanguageSettingsEditableProvider) { + newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false); + } } } } else {