diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePreferences.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePreferences.java
index 2a4588b..1ba8d18 100644
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePreferences.java
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePreferences.java
@@ -81,7 +81,7 @@
 @SuppressWarnings("deprecation")
 public class AntCorePreferences implements IPropertyChangeListener {
 
-	class WrappedClassLoader extends ClassLoader {
+	static class WrappedClassLoader extends ClassLoader {
 		private Bundle bundle;
 
 		public WrappedClassLoader(Bundle bundle) {
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntHandler.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntHandler.java
index 2a9deff..ab99286 100644
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntHandler.java
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntHandler.java
@@ -42,7 +42,7 @@
 	 *
 	 * @since 3.1
 	 */
-	private class StopParsingException extends SAXException {
+	private static class StopParsingException extends SAXException {
 		/**
 		 * All serializable objects should have a stable serialVersionUID
 		 */
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
index 168e782..aaee44c 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
@@ -49,7 +49,7 @@
 	/**
 	 * Contains the progress monitor instances for the various projects in a chain.
 	 */
-	protected class ProjectMonitors {
+	protected static class ProjectMonitors {
 		/**
 		 * This field is null for the main project
 		 */
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntBuildListener.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntBuildListener.java
index 60fbdeb..8cf246f 100644
--- a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntBuildListener.java
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntBuildListener.java
@@ -43,7 +43,7 @@
  * the different messages.
  */
 public class RemoteAntBuildListener implements ILaunchesListener {
-	public abstract class ListenerSafeRunnable implements ISafeRunnable {
+	public abstract static class ListenerSafeRunnable implements ISafeRunnable {
 		@Override
 		public void handleException(Throwable exception) {
 			AntLaunching.log(exception);
diff --git a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/TaskDescriptionProvider.java b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/TaskDescriptionProvider.java
index 9790d80..b319a46 100644
--- a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/TaskDescriptionProvider.java
+++ b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/TaskDescriptionProvider.java
@@ -68,7 +68,7 @@
 	 * 
 	 * @since 3.5
 	 */
-	class ProposalNode {
+	static class ProposalNode {
 		String desc = null;
 		String required = null;
 		HashMap<String, ProposalNode> nodes = null;
diff --git a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorDocumentProvider.java b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorDocumentProvider.java
index f52fd90..3e2645e 100644
--- a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorDocumentProvider.java
+++ b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorDocumentProvider.java
@@ -37,7 +37,7 @@
 	/**
 	 * Remembers a Ant document model for each element.
 	 */
-	protected class AntFileInfo extends FileInfo {
+	protected static class AntFileInfo extends FileInfo {
 
 		public AntModel fAntModel;
 
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacMarkerCreator.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacMarkerCreator.java
index 6f0c7ad..d4c2823 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacMarkerCreator.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacMarkerCreator.java
@@ -44,7 +44,7 @@
 	private Map<IFile, List<MarkerInfo>> fFileToMarkerInfo = new HashMap<>();
 	private final boolean fUseCustomMessage;
 
-	private class MarkerInfo {
+	private static class MarkerInfo {
 
 		public int fLineNumber;
 		public int fOffset;
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntEditorPreferencePage.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntEditorPreferencePage.java
index 8a9ce68..57a460f 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntEditorPreferencePage.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntEditorPreferencePage.java
@@ -107,7 +107,7 @@
 	 * 
 	 * @since 3.0
 	 */
-	private class HighlightingColorListItem {
+	private static class HighlightingColorListItem {
 		/** Display name */
 		private String fDisplayName;
 		/** Color preference key */
@@ -182,7 +182,7 @@
 	 * 
 	 * @since 3.0
 	 */
-	private class ColorListLabelProvider extends LabelProvider implements IColorProvider {
+	private static class ColorListLabelProvider extends LabelProvider implements IColorProvider {
 
 		@Override
 		public String getText(Object element) {
@@ -205,7 +205,7 @@
 	 * 
 	 * @since 3.0
 	 */
-	private class ColorListContentProvider implements IStructuredContentProvider {
+	private static class ColorListContentProvider implements IStructuredContentProvider {
 
 		@Override
 		public Object[] getElements(Object inputElement) {
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
index b5683d3..c191903 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java
@@ -33,7 +33,7 @@
 	private PluginEntry pluginEntry;
 	private String location;
 
-	private class ParseCompleteException extends SAXException {
+	private static class ParseCompleteException extends SAXException {
 		
 		private static final long serialVersionUID = 1L;
 
