diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeRegistry.java b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeRegistry.java
index 4c4ebe2..255738d 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeRegistry.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/base/scope/ScopeRegistry.java
@@ -190,7 +190,7 @@
 	 * returning each part of the phrase as a separate element
 	 *
 	 */
-	class ScopePhrase{
+	static class ScopePhrase{
 
 		private String phrase;
 		private int cursor;
@@ -240,7 +240,7 @@
 	 * on one Scope, or a union/intersection of scopes.
 	 *
 	 */
-	private class TempScope
+	private static class TempScope
 	{
 		public final static int SELF=0;
 		public final static int UNION=1;
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
index 6da41d4..bcd7b5a 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/IndexingOperation.java
@@ -318,7 +318,7 @@
 		return name;
 	}
 
-	public class IndexingException extends Exception {
+	public static class IndexingException extends Exception {
 		private static final long serialVersionUID = 1L;
 	}
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchManager.java b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchManager.java
index b0f8212..f5b10ab 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchManager.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/search/SearchManager.java
@@ -250,7 +250,7 @@
 	 * Buffers hits, and only sends them off to the wrapped collector
 	 * when flush() is called.
 	 */
-	private class BufferedSearchHitCollector implements ISearchHitCollector {
+	private static class BufferedSearchHitCollector implements ISearchHitCollector {
 		private Set<SearchHit> allHits = new HashSet<>();
 		private String wordsSearched = null;
 
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
index 98b3022..4d66197 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/server/JettyHelpServer.java
@@ -35,7 +35,7 @@
 
 public class JettyHelpServer extends HelpServer {
 
-	private abstract class WorkerThread extends Thread {
+	private abstract static class WorkerThread extends Thread {
 		private Throwable exception;
 
 		public WorkerThread(String name) {
diff --git a/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java b/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
index ee65f5c..67fc694 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/internal/standalone/Eclipse.java
@@ -134,7 +134,7 @@
 	/**
 	 * Reads a stream
 	 */
-	public class StreamConsumer extends Thread {
+	public static class StreamConsumer extends Thread {
 		BufferedReader bReader;
 		public StreamConsumer(InputStream inputStream) {
 			super();
diff --git a/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java b/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
index e44360a..ecf4074 100644
--- a/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
+++ b/org.eclipse.help.base/src/org/eclipse/help/search/HelpIndexBuilder.java
@@ -130,7 +130,7 @@
 		}
 	}
 
-	class LocaleDir {
+	static class LocaleDir {
 		String locale;
 		String relativePath;
 		ArrayList<File> dirs = new ArrayList<>();
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/AboutServlet.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/AboutServlet.java
index 118dcee..6d5c5c2 100644
--- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/AboutServlet.java
+++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/AboutServlet.java
@@ -43,7 +43,7 @@
 
 	protected Locale locale;
 
-	protected class PluginDetails {
+	protected static class PluginDetails {
 		public String[] columns = new String[NUMBER_OF_COLUMNS];
 
 		public PluginDetails(String[] columns) {
@@ -56,7 +56,7 @@
 		}
 	}
 
-	protected class PluginComparator implements Comparator<PluginDetails> {
+	protected static class PluginComparator implements Comparator<PluginDetails> {
 
 		public PluginComparator(int column) {
 			this.column = column;
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
index 16e2d8c..d25579c 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/index/IndexAssembler.java
@@ -208,7 +208,7 @@
 	 * Normalizes topic hrefs, by prepending the plug-in id to form an href.
 	 * e.g. "path/myfile.html" -> "/my.plugin/path/myfile.html"
 	 */
-	private class NormalizeHandler extends ProcessorHandler {
+	private static class NormalizeHandler extends ProcessorHandler {
 		@Override
 		public short handle(UAElement element, String id) {
 			if (element instanceof Topic) {
diff --git a/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java b/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
index 6c0bdb4..e42f025 100644
--- a/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
+++ b/org.eclipse.help/src/org/eclipse/help/internal/toc/TopicSorter.java
@@ -52,7 +52,7 @@
 		}
 	}
 
-	private class TopicComparator implements Comparator<ITopic> {
+	private static class TopicComparator implements Comparator<ITopic> {
 		Collator collator = Collator.getInstance();
 
 		@Override
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
index b1577f8..7c638fa 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/ConfirmRestartDialog.java
@@ -55,7 +55,7 @@
 
 	}
 
-	public class TaskContentProvider  implements IStructuredContentProvider {
+	public static class TaskContentProvider  implements IStructuredContentProvider {
 
 		Object[] input;
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
index 8df69b1..5217f10 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/explorer/TreeLabelProvider.java
@@ -41,7 +41,7 @@
 	/*
 	 * A set of related images
 	 */
-	private class ImageSet {
+	private static class ImageSet {
 		// Use a map rather than array so the nuber of icons is not hard coded
 		Map<String, Image> images = new HashMap<>();
 
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
index c813201..419a4e6 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/model/TaskDependencies.java
@@ -34,7 +34,7 @@
 
 public class TaskDependencies {
 
-	private class Dependency {
+	private static class Dependency {
 		private AbstractTask sourceTask;
 
 		private String requiredTaskId;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
index 57eef57..e958acd 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/data/CheatSheetParser.java
@@ -1151,7 +1151,7 @@
 	 * plug-ins and those tasks have relative paths. It also only applies for cheat sheets
 	 * located in running plug-ins.
 	 */
-	private class NormalizeHandler extends ProcessorHandler {
+	private static class NormalizeHandler extends ProcessorHandler {
 
 		private static final String ELEMENT_PARAM = "param"; //$NON-NLS-1$
 		private static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
index 7acdb57..bf74bee 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/registry/CheatSheetRegistryReader.java
@@ -38,7 +38,7 @@
  */
 public class CheatSheetRegistryReader extends RegistryReader implements IRegistryChangeListener {
 
-	private class CategoryNode {
+	private static class CategoryNode {
 		private Category category;
 		private String path;
 		public CategoryNode(Category cat) {
@@ -63,7 +63,7 @@
 	/**
 	 * Represents a taskEditor entry in the registry
 	 */
-	public class TaskEditorNode {
+	public static class TaskEditorNode {
 		private String className;
 		private String iconPath;
 		private String id;
@@ -97,7 +97,7 @@
 	/**
 	 * Represents a taskExplorer entry in the registry
 	 */
-	public class TaskExplorerNode {
+	public static class TaskExplorerNode {
 		private String className;
 		private String iconPath;
 		private String name;
diff --git a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
index 94669eb..6823a60 100644
--- a/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
+++ b/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/views/ErrorPage.java
@@ -32,7 +32,7 @@
 	/*
 	 * Class used to sort status with errors first, then warnings
 	 */
-	private class StatusSorter {
+	private static class StatusSorter {
 		private List<IStatus> errors = new ArrayList<>();
 		private List<IStatus> warnings = new ArrayList<>();
 		private List<IStatus> info = new ArrayList<>();
