diff --git a/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java b/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
index 0ba7404..9fcd567 100644
--- a/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
+++ b/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
@@ -380,13 +380,20 @@
             configureImplementation(ServiceRegistration.class, wrapper);
             // service name can either be a string or an array of strings
             ServiceRegistration registration;
-            if (m_serviceName instanceof String) {
-                registration = m_context.registerService((String) m_serviceName, m_serviceInstance, m_serviceProperties);
+            try {
+                if (m_serviceName instanceof String) {
+                    registration = m_context.registerService((String) m_serviceName, m_serviceInstance, m_serviceProperties);
+                }
+                else {
+                    registration = m_context.registerService((String[]) m_serviceName, m_serviceInstance, m_serviceProperties);
+                }
+                wrapper.setServiceRegistration(registration);
             }
-            else {
-                registration = m_context.registerService((String[]) m_serviceName, m_serviceInstance, m_serviceProperties);
+            catch (IllegalArgumentException iae) {
+                // set the registration to an illegal state object, which will make all invocations on this
+                // wrapper fail with an ISE (which also occurs when the SR becomes invalid)
+                wrapper.setServiceRegistration(ServiceRegistrationImpl.ILLEGAL_STATE);
             }
-            wrapper.setServiceRegistration(registration);
         }
     }
     
diff --git a/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceRegistrationImpl.java b/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceRegistrationImpl.java
index e469b19..dc15d5f 100644
--- a/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceRegistrationImpl.java
+++ b/org.apache.felix.dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceRegistrationImpl.java
@@ -28,6 +28,7 @@
  * @author <a href="mailto:felix-dev@incubator.apache.org">Felix Project Team</a>
  */
 public class ServiceRegistrationImpl implements ServiceRegistration {
+    public static final ServiceRegistrationImpl ILLEGAL_STATE = new ServiceRegistrationImpl();
     private ServiceRegistration m_registration;
 
     public ServiceRegistrationImpl() {
@@ -74,6 +75,9 @@
                 // service registration ready; if not we wait again
             }
         }
+        if (ILLEGAL_STATE.equals(m_registration)) {
+            throw new IllegalStateException("Service is not registered.");
+        }
     }
 
     void setServiceRegistration(ServiceRegistration registration) {
