diff --git a/src/main/java/io/reactivex/gwt/schedulers/GwtScheduler.java b/src/main/java/io/reactivex/gwt/schedulers/GwtScheduler.java
index <HASH>..<HASH> 100644
--- a/src/main/java/io/reactivex/gwt/schedulers/GwtScheduler.java
+++ b/src/main/java/io/reactivex/gwt/schedulers/GwtScheduler.java
@@ -34,9 +34,18 @@ public class GwtScheduler extends io.reactivex.Scheduler {
             ScheduledAction scheduledAction = new ScheduledAction(action);
 
             if (incremental && (delayTime <= 0 || unit == null)) {
-                Promise.resolve(0).then(o -> { scheduledAction.run(); return null; });
+                Promise.resolve(0).then(o -> {
+                    if (!isDisposed()) {
+                        scheduledAction.run();
+                    }
+                    return null;
+                });
             } else {
-                DomGlobal.setTimeout(args -> scheduledAction.run(), (int) unit.toMillis(delayTime));
+                DomGlobal.setTimeout(args -> {
+                    if (!isDisposed()) {
+                        scheduledAction.run();
+                    }
+                }, (int) unit.toMillis(delayTime));
             }
 
             return scheduledAction;
Fix GwtScheduler might execute pending actions after worker is disposed