diff --git a/eventadmin/impl/changelog.txt b/eventadmin/impl/changelog.txt
index 56c4673..a8bc781 100644
--- a/eventadmin/impl/changelog.txt
+++ b/eventadmin/impl/changelog.txt
@@ -3,6 +3,7 @@
 ** Improvement
     * [FELIX-4623] - Make Async to Sync ThreadPool Ratio Configurable
 ** Bug
+    * [FELIX-4627] - Potential Memory Leak in AsyncDeliverTasks
     * [FELIX-4617] - Empty configurations for ignore topic and ignore timeout lead to error messages in the log
     * [FELIX-4618] - NPE if config value for ignore topic or timeout is empty
 
diff --git a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
index 465b2fa..dccb1cb 100644
--- a/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
+++ b/eventadmin/impl/src/main/java/org/apache/felix/eventadmin/impl/tasks/AsyncDeliverTasks.java
@@ -89,7 +89,7 @@
             TaskExecuter executer = m_running_threads.get(currentThreadId);
             if ( executer == null )
             {
-                executer = new TaskExecuter();
+                executer = new TaskExecuter(m_running_threads);
                 m_running_threads.put(currentThreadId, executer);
             }
             synchronized ( executer )
@@ -97,8 +97,10 @@
                 executer.add(info);
                 if ( !executer.isActive() )
                 {
+                    // reactivate thread
                     executer.setSyncDeliverTasks(m_deliver_task);
                     m_pool.executeTask(executer);
+                    m_running_threads.put(currentThreadId, executer);
                 }
             }
         //}
@@ -123,6 +125,12 @@
 
         private volatile SyncDeliverTasks m_deliver_task;
 
+        private final Map<Long, TaskExecuter> m_running_threads;
+
+        public TaskExecuter(Map<Long, TaskExecuter> runningThreads) {
+            m_running_threads = runningThreads;
+        }
+
         public boolean isActive()
         {
             return this.m_deliver_task != null;
@@ -156,6 +164,7 @@
                     if ( !running )
                     {
                         this.m_deliver_task = null;
+                        this.m_running_threads.remove(this);
                     }
                 }
             } while ( running );
