diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
index 1968af3..fb42295 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/editor/ScriptEditor.java
@@ -29,6 +29,7 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.core.IDLTKLanguageToolkit;
 import org.eclipse.dltk.core.IMember;
@@ -1037,19 +1038,28 @@
 	 *            The editor input for which to create the preference store
 	 * @return the preference store for this editor
 	 */
-	// protected abstract IPreferenceStore createCombinedPreferenceStore(
-	// IEditorInput input);
 	private IPreferenceStore createCombinedPreferenceStore(IEditorInput input) {
-		List stores = new ArrayList(3);
-		IScriptProject project = EditorUtility.getScriptProject(input);
+		final List stores = new ArrayList(8);
+		final IScriptProject project = EditorUtility.getScriptProject(input);
+		final IDLTKLanguageToolkit toolkit = getLanguageToolkit();
+		final String preferenceQualifier = toolkit.getPreferenceQualifier();
 		if (project != null) {
+			if (preferenceQualifier != null) {
+				stores.add(new EclipsePreferencesAdapter(new ProjectScope(
+						project.getProject()), preferenceQualifier));
+			}
 			stores.add(new EclipsePreferencesAdapter(new ProjectScope(project
 					.getProject()), DLTKCore.PLUGIN_ID));
 		}
 		stores.add(getScriptPreferenceStore());
+		if (preferenceQualifier != null) {
+			stores.add(new EclipsePreferencesAdapter(new InstanceScope(),
+					preferenceQualifier));
+		}
 		stores.add(new PreferencesAdapter(DLTKCore.getDefault()
 				.getPluginPreferences()));
 		stores.add(EditorsUI.getPreferenceStore());
+		stores.add(PlatformUI.getPreferenceStore());
 		return new ChainedPreferenceStore((IPreferenceStore[]) stores
 				.toArray(new IPreferenceStore[stores.size()]));
 	}
