diff --git a/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF b/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF
index d692f5b..3595694 100644
--- a/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF
@@ -41,7 +41,7 @@
  org.eclipse.jdt.launching;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.jdt.debug;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.jdt.debug.ui;bundle-version="[3.9.0,4.0.0)",
- org.eclipse.debug.core;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.debug.core;bundle-version="[3.14.0,4.0.0)",
  org.eclipse.debug.ui;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.core.runtime,
  org.eclipse.ui.console,
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
index b4565a4..7f5b3ac 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/core/ConsoleTests.java
@@ -16,6 +16,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 
+import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
@@ -23,7 +24,6 @@
 import org.eclipse.debug.core.model.IProcess;
 import org.eclipse.debug.internal.ui.DebugUIPlugin;
 import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.debug.core.IJavaDebugTarget;
 import org.eclipse.jdt.debug.tests.AbstractDebugTest;
 import org.eclipse.jdt.debug.tests.TestUtil;
@@ -139,7 +139,7 @@
 		try {
 			ILaunchConfiguration launchConfig = getLaunchConfiguration(typeName);
 			ILaunchConfigurationWorkingCopy launchCopy = launchConfig.getWorkingCopy();
-			launchCopy.setAttribute(IDebugUIConstants.ATTR_MERGE_OUTPUT, true);
+			launchCopy.setAttribute(DebugPlugin.ATTR_MERGE_OUTPUT, true);
 			target = launchAndTerminate(launchCopy, DEFAULT_TIMEOUT);
 			String content = getConsoleContent(target.getProcess());
 			// normalize new lines to unix style
@@ -168,7 +168,7 @@
 		try {
 			ILaunchConfiguration launchConfig = getLaunchConfiguration(typeName);
 			ILaunchConfigurationWorkingCopy launchCopy = launchConfig.getWorkingCopy();
-			launchCopy.setAttribute(IDebugUIConstants.ATTR_MERGE_OUTPUT, true);
+			launchCopy.setAttribute(DebugPlugin.ATTR_MERGE_OUTPUT, true);
 			launch = launchCopy.launch(ILaunchManager.RUN_MODE, null);
 			TestUtil.waitForJobs(getName(), 0, DEFAULT_TIMEOUT);
 			String content = getConsoleContent(launch.getProcesses()[0]);
diff --git a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
index dfb4ded..6f7cf4e 100644
--- a/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.launching/META-INF/MANIFEST.MF
@@ -21,8 +21,7 @@
  org.eclipse.core.variables;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.osgi;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.debug.ui;bundle-version="[3.14.0,4.0.0)"
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Import-Package: com.ibm.icu.text
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
index edb94cb..a1feb7e 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/launching/JavaLaunchDelegate.java
@@ -19,9 +19,9 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.IModuleDescription;
 import org.eclipse.jdt.internal.launching.LaunchingMessages;
@@ -132,7 +132,7 @@
 				runConfig.setOverrideDependencies(getModuleCLIOptions(configuration));
 			}
 		}
-		runConfig.setMergeOutput(configuration.getAttribute(IDebugUIConstants.ATTR_MERGE_OUTPUT, false));
+		runConfig.setMergeOutput(configuration.getAttribute(DebugPlugin.ATTR_MERGE_OUTPUT, false));
 
 		// check for cancellation
 		if (monitor.isCanceled()) {
