diff --git a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java
index 404b859..1a13438 100644
--- a/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java
+++ b/sigil/gogo/junit/src/org/apache/felix/sigil/gogo/junit/Activator.java
@@ -39,14 +39,14 @@
 
     public void start( final BundleContext ctx ) throws Exception
     {
+        ServiceTracker tracker = new ServiceTracker( ctx, JUnitService.class.getName(), null );
+        tracker.open();
+
         Hashtable<String, Object> props = new Hashtable<String, Object>();
         props.put( CommandProcessor.COMMAND_SCOPE, "sigil" );
         props.put( CommandProcessor.COMMAND_FUNCTION, new String[]
             { "runTests", "listTests" } );
 
-        ServiceTracker tracker = new ServiceTracker( ctx, JUnitService.class.getName(), null );
-        tracker.open();
-
         ctx.registerService( SigilJunitRunner.class.getName(), new SigilJunitRunner( tracker ), props );
 
         props.put( CommandProcessor.COMMAND_FUNCTION, new String[]
@@ -64,7 +64,7 @@
     /**
      * @return
      */
-    private String[] getAssertMethods()
+    private static String[] getAssertMethods()
     {
         ArrayList<String> list = new ArrayList<String>();
         for ( Method m : Assert.class.getDeclaredMethods() )
