diff --git a/library/src/main/java/com/liulishuo/filedownloader/event/DownloadEventPoolImpl.java b/library/src/main/java/com/liulishuo/filedownloader/event/DownloadEventPoolImpl.java
index <HASH>..<HASH> 100644
--- a/library/src/main/java/com/liulishuo/filedownloader/event/DownloadEventPoolImpl.java
+++ b/library/src/main/java/com/liulishuo/filedownloader/event/DownloadEventPoolImpl.java
@@ -127,6 +127,8 @@ public class DownloadEventPoolImpl implements IDownloadEventPool {
 
         final Object[] lists = listeners.toArray();
         for (Object o : lists) {
+            if (o == null) continue; // it has been removed while before listeners.toArray().
+
             if (((IDownloadListener) o).callback(event)) {
                 break;
             }
fix(npe): fix the small probability npe crash when publish event when it has been removed on other thread
Closes #<I>