diff --git a/guice-plexus-scanners/src/main/java/org/sonatype/guice/plexus/scanners/XmlPlexusBeanSource.java b/guice-plexus-scanners/src/main/java/org/sonatype/guice/plexus/scanners/XmlPlexusBeanSource.java
index <HASH>..<HASH> 100644
--- a/guice-plexus-scanners/src/main/java/org/sonatype/guice/plexus/scanners/XmlPlexusBeanSource.java
+++ b/guice-plexus-scanners/src/main/java/org/sonatype/guice/plexus/scanners/XmlPlexusBeanSource.java
@@ -357,6 +357,11 @@ public final class XmlPlexusBeanSource
         {

             // check the role actually exists

             clazz = space.loadClass( role );

+            if ( implementation.equals( role ) )

+            {

+                // also check constructor types

+                clazz.getDeclaredConstructors();

+            }

         }

         catch ( final Throwable e )

         {
OSGI-<I>: Remove any unused missing roles/implementations from the binding map