diff --git a/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/activation/ActivationExtension.java b/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/activation/ActivationExtension.java
index f9860a8..849b33f 100644
--- a/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/activation/ActivationExtension.java
+++ b/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/activation/ActivationExtension.java
@@ -58,7 +58,7 @@
      * Check if the {@link javax.enterprise.inject.spi.AnnotatedType} is an @Alternative and
      * is not disabled for the current {@link ProjectStage}.
      */
-    protected void vetoAlternativeTypes(@Observes ProcessAnnotatedType<Object> processAnnotatedType)
+    protected void vetoAlternativeTypes(@Observes ProcessAnnotatedType processAnnotatedType)
     {
         if(!isActivated())
         {
@@ -86,7 +86,7 @@
         //TODO validateCodiImplementationRules(processAnnotatedType);
     }
 
-    private void checkProjectStageActivated(ProcessAnnotatedType<Object> processAnnotatedType,
+    private void checkProjectStageActivated(ProcessAnnotatedType<?> processAnnotatedType,
                                             ProjectStage currentlyConfiguredProjectStage)
     {
         if (processAnnotatedType.getAnnotatedType().getJavaClass().isAnnotationPresent(ProjectStageActivated.class))
@@ -105,7 +105,7 @@
         }
     }
 
-    private void checkExpressionActivated(ProcessAnnotatedType<Object> processAnnotatedType)
+    private void checkExpressionActivated(ProcessAnnotatedType<?> processAnnotatedType)
     {
         Class<?> annotatedClass = processAnnotatedType.getAnnotatedType().getJavaClass();
 
