diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
index d01c59f..02058aa 100644
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
+++ b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
@@ -41,8 +41,7 @@
         processEvents();
         
        	tagIfNecessary("UI - Open/Close " + view1.getTitle(), Dimension.ELAPSED_PROCESS);
-       	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98144>See Bug 98144</a> ");
-       	
+        	
 		for (int j = 0; j < 100; j++) {
 
 			startMeasuring();
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
index 484da0e..9ac8e20 100644
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
+++ b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
@@ -26,14 +26,11 @@
  */
 public class ViewPerformanceSuite extends TestSuite {
 
-	public static final String RESOURCE_NAVIGATOR = "org.eclipse.ui.views.ResourceNavigator";
+	public static final String PROJECT_EXPLORER = "org.eclipse.ui.navigator.ProjectExplorer";
 
 	public static final String BASIC_PATH = "org.eclipse.ui";
-	
-	public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
 
-	// public static final String [] VIEW_IDS = {BASIC_VIEW,
-	// IPageLayout.ID_RES_NAV, MockViewPart.ID};
+	public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
 
 	/**
 	 * Returns the suite. This is required to use the JUnit Launcher.
@@ -60,11 +57,8 @@
 		for (int i = 0; i < ids.length; i++) {
 			String id = ids[i];
 
-			// Use the BASIC_VIEW as the fingerprint test.
-			// Do not change this as this is an empty view
-			// and not dependant on other components
 			addTest(new OpenCloseViewTest(id,
-					id.equals(RESOURCE_NAVIGATOR) ? BasicPerformanceTest.GLOBAL
+					id.equals(PROJECT_EXPLORER) ? BasicPerformanceTest.GLOBAL
 							: BasicPerformanceTest.NONE));
 		}
 	}
@@ -87,6 +81,7 @@
 				.getViewRegistry().getViews();
 		for (int i = 0; i < descriptors.length; i++) {
 			IViewDescriptor descriptor = descriptors[i];
+
 			String[] categoryPath = descriptor.getCategoryPath();
 
 			if (categoryPath == null)
@@ -94,10 +89,12 @@
 
 			for (int j = 0; j < categoryPath.length; j++) {
 				// Only test basic views
-				if (categoryPath[j].equals(BASIC_PATH)){
-					if(descriptor.getId().indexOf(VIEWS_PATTERN) >= 0) {
+				if (categoryPath[j].equals(BASIC_PATH)) {
+					if (descriptor.getId().indexOf(VIEWS_PATTERN) >= 0
+							|| descriptor.getId().equals(PROJECT_EXPLORER)) {
 						result.add(descriptor.getId());
-				}}
+					}
+				}
 			}
 
 		}
