diff --git a/rxjava-core/src/main/java/rx/subjects/SubjectSubscriptionManager.java b/rxjava-core/src/main/java/rx/subjects/SubjectSubscriptionManager.java index 589ca0dbe9..7b1564543e 100644 --- a/rxjava-core/src/main/java/rx/subjects/SubjectSubscriptionManager.java +++ b/rxjava-core/src/main/java/rx/subjects/SubjectSubscriptionManager.java @@ -57,8 +57,10 @@ public void call(final Subscriber child) { SubjectObserver bo = new SubjectObserver(child); addUnsubscriber(child, bo); onStart.call(bo); - if (add(bo) && child.isUnsubscribed()) { - remove(bo); + if (!child.isUnsubscribed()) { + if (add(bo) && child.isUnsubscribed()) { + remove(bo); + } } } /** Registers the unsubscribe action for the given subscriber. */