diff --git a/sigil/gogo/junit/sigil.properties b/sigil/gogo/junit/sigil.properties
index babc576..b305d9e 100644
--- a/sigil/gogo/junit/sigil.properties
+++ b/sigil/gogo/junit/sigil.properties
@@ -15,5 +15,6 @@
 	org.apache.felix.sigil.junit.server;version=0.9.0, \
 	org.apache.tools.ant;version=1.7.0, \
 	org.osgi.framework;version=1.5.0, \
+	org.osgi.service.command;version=0.2.0, \
 
 # end
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 47caa85..fe3a78d 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
@@ -18,14 +18,22 @@
  */
 package org.apache.felix.sigil.gogo.junit;
 
+import java.util.Hashtable;
+
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 
+import org.osgi.service.command.CommandProcessor;
+
 public class Activator implements BundleActivator
 {
 
     public void start( BundleContext ctx ) throws Exception
     {
+        Hashtable props = new Hashtable();
+        props.put(CommandProcessor.COMMAND_SCOPE, "sigil");
+        props.put(CommandProcessor.COMMAND_FUNCTION, new String[] { "junit" });        
+        ctx.registerService( SigilJunit.class.getName(), new SigilJunit(), props );
     }
 
     public void stop( BundleContext ctx ) throws Exception
