diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java
index d7e0b3a81705654de7524c0249571b61c6252c74..a317bcda83ac28d24809472cf37493d6579f3e68 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java
@@ -89,7 +89,7 @@ public class ProjectsBean {
 			if (FileManager.getInstance().saveNewProject(project)) {
 				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", "New Project: " + projectName));
 				this.projects.add(project);
-                RequestContext.getCurrentInstance().addPartialUpdateTarget("projectsForm");
+				RequestContext.getCurrentInstance().addPartialUpdateTarget("projectsForm");
 			} else {
 				/* Inform the user about the fail. */
 				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "A project with this name exists already."));
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
index 9f99b5f39e429e73da87b1ed685755020b19e07a..5ec6c8550ea46d1201f56ccc8f1fa427366f1b7f 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
@@ -31,15 +31,25 @@ import java.util.jar.JarFile;
 import kieker.analysis.plugin.AbstractPlugin;
 import kieker.analysis.plugin.annotation.Plugin;
 import kieker.analysis.repository.AbstractRepository;
+import sun.misc.Cache;
 
 /**
  * This tool class can be used to find all plugins and repositories within a given jar file - assuming that the <code>PluginClassLoader</code> knows these jars.
  * 
  * @author Nils Christian Ehmke
  * @version 1.0
+ *          TODO Cache and observer update!
  */
 public final class PluginFinder {
 
+	private static final Cache PLUGIN_CACHE;
+	private static final Cache REPOSITORY_CACHE;
+
+	static {
+		PLUGIN_CACHE = new Cache(15);
+		REPOSITORY_CACHE = new Cache(15);
+	}
+
 	/**
 	 * Creates a new instance of this class.
 	 */
@@ -56,6 +66,10 @@ public final class PluginFinder {
 	 */
 	public static List<Class<AbstractRepository>> getAllRepositoriesWithinJar(final URL url) {
 		// TODO: Merge this with the other method
+		final List<Class<AbstractRepository>> repositoryClasses = (List<Class<AbstractRepository>>) REPOSITORY_CACHE.get(url);
+		if (repositoryClasses != null) {
+			return repositoryClasses;
+		}
 		try {
 			/*
 			 * Open the jar file and run through all entries within this file.
@@ -82,6 +96,7 @@ public final class PluginFinder {
 				}
 			}
 			jarFile.close();
+			REPOSITORY_CACHE.put(url, result);
 			return result;
 		} catch (final IOException ex) {
 			ex.printStackTrace();
@@ -98,6 +113,10 @@ public final class PluginFinder {
 	 * @return A list containing all available plugin-classes or null, if an exception occurred.
 	 */
 	public static List<Class<AbstractPlugin>> getAllPluginsWithinJar(final URL url) {
+		final List<Class<AbstractPlugin>> pluginClasses = (List<Class<AbstractPlugin>>) PLUGIN_CACHE.get(url);
+		if (pluginClasses != null) {
+			return pluginClasses;
+		}
 		try {
 			/*
 			 * Open the jar file and run through all entries within this file.
@@ -127,6 +146,7 @@ public final class PluginFinder {
 				}
 			}
 			jarFile.close();
+			PLUGIN_CACHE.put(url, result);
 			return result;
 		} catch (final IOException ex) {
 			ex.printStackTrace();