diff --git a/org.eclipse.wst.common.snippets.tests/META-INF/MANIFEST.MF b/org.eclipse.wst.common.snippets.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..44a4542
--- /dev/null
+++ b/org.eclipse.wst.common.snippets.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Snippets Tests
+Bundle-SymbolicName: org.eclipse.wst.common.snippets.tests; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: snippetstests.jar
+Bundle-Activator: org.eclipse.wst.common.snippets.tests.TestsPlugin
+Bundle-Vendor: Eclipse.org
+Bundle-Localization: plugin
+Export-Package: org.eclipse.wst.common.snippets.core.tests,
+ org.eclipse.wst.common.snippets.tests,
+ org.eclipse.wst.common.snippets.ui.tests
+Require-Bundle: org.junit,
+ org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.text,
+ org.eclipse.ui,
+ org.eclipse.wst.common.snippets,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.workbench.texteditor
+Eclipse-LazyStart: true
diff --git a/org.eclipse.wst.common.snippets.tests/build.properties b/org.eclipse.wst.common.snippets.tests/build.properties
index 67081da..efa6153 100644
--- a/org.eclipse.wst.common.snippets.tests/build.properties
+++ b/org.eclipse.wst.common.snippets.tests/build.properties
@@ -6,7 +6,9 @@
                snippetstests.jar,\
                testfiles/,\
                plugin.properties,\
-               about.html
+               about.html,\
+               META-INF/,\
+               META-INF/
 src.includes = src/,\
                build.properties
 jars.compile.order = snippetstests.jar
diff --git a/org.eclipse.wst.common.snippets.tests/plugin.xml b/org.eclipse.wst.common.snippets.tests/plugin.xml
index 438f703..3926b2b 100644
--- a/org.eclipse.wst.common.snippets.tests/plugin.xml
+++ b/org.eclipse.wst.common.snippets.tests/plugin.xml
@@ -1,30 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.wst.common.snippets.tests"
-   name="org.eclipse.wst.common.snippets.tests"
-   version="1.0.0"
-   provider-name="Eclipse.org"
-   class="org.eclipse.wst.common.snippets.tests.TestsPlugin">
-   <runtime>
-      <library name="snippetstests.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-
-   <requires>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.text"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.wst.common.snippets"/>
-      <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.ui.workbench.texteditor"/>
-   </requires>
-
-	<!--======================================================================================-->
+<plugin>
+    	<!--======================================================================================-->
 	<!-- Snippet View contributions                                                           -->
 	<!--======================================================================================-->
 	<extension
diff --git a/org.eclipse.wst.common.snippets.tests/src/org/eclipse/wst/common/snippets/ui/tests/SnippetUITests.java b/org.eclipse.wst.common.snippets.tests/src/org/eclipse/wst/common/snippets/ui/tests/SnippetUITests.java
index 332306c..99d7abc 100644
--- a/org.eclipse.wst.common.snippets.tests/src/org/eclipse/wst/common/snippets/ui/tests/SnippetUITests.java
+++ b/org.eclipse.wst.common.snippets.tests/src/org/eclipse/wst/common/snippets/ui/tests/SnippetUITests.java
@@ -124,7 +124,8 @@
 		ISnippetItem item = fCurrentDefinitions.getItem("org.eclipse.wst.common.snippets.tests.item0"); //$NON-NLS-1$
 		assertNotNull("test item 1 not found", item); //$NON-NLS-1$
 
-		IProject p = createSimpleProject("testInsertIntoActiveEditor", null, null);
+		//IProject p = 
+			createSimpleProject("testInsertIntoActiveEditor", null, null);
 		IFile testFile = copyBundleEntryIntoWorkspace("testfiles/testInsertIntoActiveEditor.txt", "testInsertIntoActiveEditor/testInsertIntoActiveEditor.txt");
 		IEditorDescriptor descriptor = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(testFile.getName());
 		assertTrue("no default editor found", descriptor != null);
@@ -146,7 +147,6 @@
 
 	public void testOpenSnippetsView() throws CoreException {
 		IWorkbenchPage page = getActivePage();
-		SnippetsView view = null;
 		Object o;
 		assertNotNull(o = page.showView("org.eclipse.wst.common.snippets.internal.ui.SnippetsView"));
 		assertEquals("view part is wrong type", SnippetsView.class.getName(), o.getClass().getName());
