diff --git a/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java b/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
index 3486beb..1ad0754 100644
--- a/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
+++ b/useradmin/src/main/java/org/apache/felix/useradmin/impl/Activator.java
@@ -16,11 +16,14 @@
  */
 package org.apache.felix.useradmin.impl;
 
+import java.util.Properties;
+
+import org.apache.felix.useradmin.UserAdminEventDispatcher;
 import org.apache.felix.useradmin.UserAdminRepository;
 import org.apache.felix.useradmin.UserAdminRepositoryManager;
-import org.apache.felix.useradmin.UserAdminEventDispatcher;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.useradmin.UserAdmin;
 
@@ -34,6 +37,7 @@
  */
 public class Activator implements BundleActivator
 {
+    private static final String PID = "org.apache.felix.useradmin";
     private Logger logger;
     private ServiceRegistration registration;
     private UserAdminServiceImpl userAdmin;
@@ -51,11 +55,13 @@
         //Creating manager for roles repository
         UserAdminRepositoryManager repositoryManager = new UserAdminRepositoryManagerImpl(logger, repository);
         //Creating dispatcher for UserAdmin events
-        UserAdminEventDispatcher eventDispatcher = new UserAdminEventDipatcherImpl(context);
+        UserAdminEventDispatcher eventDispatcher = new UserAdminEventDispatcherImpl(context);
         userAdmin = new UserAdminServiceImpl(context, repositoryManager, logger, eventDispatcher);
         repositoryManager.initialize(userAdmin);
 
-        registration = context.registerService(UserAdmin.class.getName(), userAdmin, null);
+        Properties props = new Properties();
+        props.put(Constants.SERVICE_PID, PID);
+        registration = context.registerService(UserAdmin.class.getName(), userAdmin, props);
         userAdmin.setServiceRef(registration.getReference());
     }
 
diff --git a/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java b/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
similarity index 97%
rename from useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java
rename to useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
index 72bc04c..fcd1757 100644
--- a/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDipatcherImpl.java
+++ b/useradmin/src/main/java/org/apache/felix/useradmin/impl/UserAdminEventDispatcherImpl.java
@@ -36,7 +36,7 @@
  * 
  * @version $Rev$ $Date$
  */
-public class UserAdminEventDipatcherImpl extends Thread implements UserAdminEventDispatcher
+public class UserAdminEventDispatcherImpl extends Thread implements UserAdminEventDispatcher
 {
     private Vector queue;
     private ServiceTracker userAdminTrackerListener;
@@ -50,7 +50,7 @@
      * Setting thread as a daemon.
      * @param context bundle context
      */
-    public UserAdminEventDipatcherImpl(BundleContext context)
+    public UserAdminEventDispatcherImpl(BundleContext context)
     {
         super();
         this.queue = new Vector();
