diff --git a/geronimo-health/pom.xml b/geronimo-health/pom.xml
index 24d6826..3011587 100644
--- a/geronimo-health/pom.xml
+++ b/geronimo-health/pom.xml
@@ -21,11 +21,11 @@
   <parent>
     <artifactId>geronimo-health-parent</artifactId>
     <groupId>org.apache.geronimo</groupId>
-    <version>1.0.3-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>geronimo-health</artifactId>
-  <version>1.0.3-SNAPSHOT</version>
+  <version>2.0.0-SNAPSHOT</version>
   <name>Geronimo Health :: Microprofile</name>
 
   <properties>
diff --git a/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java b/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java
index 10998a8..c9f72ae 100644
--- a/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java
+++ b/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java
@@ -132,12 +132,16 @@
 
     private HealthCheck lookup(final Bean<?> bean, final BeanManager manager) {
         // if this is not an instance of HealthCheck, then it's a producer (not sure it's enough)
-        final Class<?> type = bean.getBeanClass() == null || !HealthCheck.class.isAssignableFrom(bean.getBeanClass())
-                ? HealthCheck.class
-                : bean.getBeanClass();
-        final Set<Annotation> qualifiers = bean.getQualifiers();
-        final Set<Bean<?>> beans = manager.getBeans(type, qualifiers.toArray(new Annotation[qualifiers.size()]));
-        final Bean<?> resolvedBean = manager.resolve(beans);
+        final Class<?> type = bean.getBeanClass() == null ?
+                HealthCheck.class :
+                (bean.getTypes().contains(bean.getBeanClass()) ? bean.getBeanClass() : HealthCheck.class);
+        final Bean<?> resolvedBean;
+        if (type != HealthCheck.class) {
+            final Set<Bean<?>> beans = manager.getBeans(type, bean.getQualifiers().toArray(new Annotation[0]));
+            resolvedBean = manager.resolve(beans);
+        } else {
+            resolvedBean = bean;
+        }
         final CreationalContext<Object> creationalContext = manager.createCreationalContext(null);
         if (!manager.isNormalScope(resolvedBean.getScope())) {
             contexts.add(creationalContext);
