              (this-as this
                (vswap! (state this) call-all did-update))))
          :componentWillUnmount
-         (when-not (empty? will-unmount)
-           (fn []
-             (this-as this
-               (vswap! (state this) call-all will-unmount))))
+         (fn []
+           (this-as this
+             (when-not (empty? will-unmount)
+               (vswap! (state this) call-all will-unmount))
+             (gobj/set this ":rum/mounted?" false)))
          :getChildContext
          (when-not (empty? child-context)
            (fn []



(defn- render-all [queue]
  (doseq [comp queue]
    (.forceUpdate comp)))



             (this-as this
               (vswap! (state this) call-all will-mount))))
         :componentDidMount
         (fn []
           (this-as this
             (gobj/set this ":rum/mounted?" true)
             (when-not (empty? did-mount)
               (vswap! (state this) call-all did-mount))))
         :componentWillReceiveProps
         (fn [next-props]
