diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/EventHandlerProxy.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/EventHandlerProxy.java
index ac0db05..d2be473 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/EventHandlerProxy.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/handler/EventHandlerProxy.java
@@ -19,6 +19,7 @@
 package org.apache.felix.eventadmin.impl.handler;
 
 import java.util.Collection;
+import java.util.Iterator;
 
 import org.apache.felix.eventadmin.impl.security.PermissionsUtil;
 import org.apache.felix.eventadmin.impl.util.LogWrapper;
@@ -120,6 +121,33 @@
                 this.topics = values;
             }
         }
+        else if (topicObj instanceof Collection)
+        {
+            final Collection col = (Collection)topicObj;
+            final String[] values = new String[col.size()];
+            int index = 0;
+            // check if one value matches '*'
+            final Iterator i = col.iterator();
+            boolean matchAll = false;
+            while ( i.hasNext() )
+            {
+                final String v = i.next().toString();
+                values[index] = v;
+                index++;
+                if ( "*".equals(v) )
+                {
+                    matchAll = true;
+                }
+            }
+            if ( matchAll )
+            {
+                this.topics = null;
+            }
+            else
+            {
+                this.topics = values;
+            }
+        }
         else if ( topicObj == null && !this.handlerContext.requireTopic )
         {
             this.topics = null;
