diff --git a/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF b/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
index 758f22c..ef64b6a 100644
--- a/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.web.tasks/META-INF/MANIFEST.MF
@@ -10,12 +10,12 @@
  org.eclipse.core.runtime,
  org.eclipse.ui,
  org.eclipse.ui.forms,
- org.eclipse.mylyn.commons.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.net;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.commons.workbench;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.mylyn.tasks.ui;bundle-version="[3.0.0,4.0.0)"
+ org.eclipse.mylyn.commons.core;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.mylyn.commons.net;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.mylyn.commons.ui;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.mylyn.commons.workbench;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.mylyn.tasks.core;bundle-version="[3.9.0,4.0.0)",
+ org.eclipse.mylyn.tasks.ui;bundle-version="[3.9.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.mylyn.internal.web.tasks;x-internal:=true
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java
index 7e3c766..8145d12 100644
--- a/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java
+++ b/org.eclipse.mylyn.web.tasks/src/org/eclipse/mylyn/internal/web/tasks/WebRepositorySettingsPage.java
@@ -73,8 +73,6 @@
 
 	private ComboViewer loginRequestMethod;
 
-	private FormToolkit toolkit;
-
 	private Map<String, String> oldProperties;
 
 	private final ArrayList<ControlDecoration> decorations = new ArrayList<ControlDecoration>();
@@ -88,10 +86,6 @@
 
 	@Override
 	public void dispose() {
-		if (toolkit != null) {
-			toolkit.dispose();
-			toolkit = null;
-		}
 		for (ControlDecoration decoration : decorations) {
 			decoration.dispose();
 		}
@@ -133,9 +127,6 @@
 	@SuppressWarnings("restriction")
 	@Override
 	protected void createAdditionalControls(Composite parent) {
-		toolkit = new FormToolkit(org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin.getDefault().getFormColors(
-				parent.getDisplay()));
-
 		addRepositoryTemplatesToServerUrlCombo();
 
 		Composite composite = new Composite(parent, SWT.NONE);
@@ -195,6 +186,7 @@
 	}
 
 	private void createAdvancedComposite(final Composite composite) {
+		FormToolkit toolkit = getToolkit();
 		ExpandableComposite expComposite = toolkit.createExpandableComposite(composite, ExpandableComposite.TITLE_BAR
 				| ExpandableComposite.COMPACT | ExpandableComposite.TWISTIE);
 		expComposite.clientVerticalSpacing = 0;
