diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
index 90a1d53..1ff7982 100644
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
+++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
@@ -894,7 +894,7 @@
 		private void handleProjectResourceOpenStateChange(final IResource project) {
 			if (!project.isAccessible()) {
 				//closed
-				for (IBreakpoint breakpoint : (Vector<IBreakpoint>) getBreakpoints0().clone()) {
+				for (@SuppressWarnings("unchecked") IBreakpoint breakpoint : (Vector<IBreakpoint>) getBreakpoints0().clone()) {
 					IResource markerResource= breakpoint.getMarker().getResource();
 					if (project.getFullPath().isPrefixOf(markerResource.getFullPath())) {
 						fRemoved.add(breakpoint);
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
index 3b70de0..270cbea 100644
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
+++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
+
 import org.eclipse.debug.core.DebugPlugin;
 
 /**
@@ -45,7 +46,9 @@
 	protected Comparator<Object> getComparator() {
 		if (fDelegate == null) {
 			try {
-				fDelegate = (Comparator<Object>) fConfigurationElement.createExecutableExtension(IConfigurationElementConstants.CLASS);
+				@SuppressWarnings("unchecked")
+				Comparator<Object> delegate = (Comparator<Object>) fConfigurationElement.createExecutableExtension(IConfigurationElementConstants.CLASS);
+				fDelegate = delegate;
 			} catch (CoreException e) {
 				DebugPlugin.log(e);
 			}
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchPerspectivePreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchPerspectivePreferencePage.java
index da59e7f..7cf6dba 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchPerspectivePreferencePage.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/preferences/LaunchPerspectivePreferencePage.java
@@ -226,7 +226,6 @@
 				LaunchDelegate delegate = null;
 				ILaunchConfigurationType type = null;
 				PerspectiveChange change = null;
-				Set<String> modes = null;
 				for (Iterator<Object> iter = fgCurrentWorkingContext.iterator(); iter.hasNext();) {
 					o = iter.next();
 					if(o instanceof ILaunchDelegate) {
@@ -237,7 +236,8 @@
 						delegate = null;
 						type = (ILaunchConfigurationType) o;
 					}
-					modes = (Set<String>) combo.getData();
+					@SuppressWarnings("unchecked")
+					Set<String> modes = (Set<String>) combo.getData();
 					change = findChange(type, delegate, modes);
 					if(change == null) {
 						change = new PerspectiveChange(type, delegate, modes, fgPerspectiveIdMap.get(combo.getText()));
