diff --git a/src/component.js b/src/component.js
index <HASH>..<HASH> 100644
--- a/src/component.js
+++ b/src/component.js
@@ -75,7 +75,8 @@ export default {
     }
   },
   beforeDestroy() {
-    if (this.widget) {
+    // todo: remove dispose flub
+    if (this.widget && this.widget.dispose) {
       this._instance.removeWidget(this.widget);
     }
   },
@@ -86,7 +87,10 @@ export default {
         this.widget = this.widgetFactory(newVal);
 
         this._instance.addWidget(this.widget);
-        this._instance.removeWidget(oldWidget);
+        // todo: remove dispose flub
+        if (oldWidget.dispose) {
+          this._instance.removeWidget(oldWidget);
+        }
       }
     },
   },
fix(core): only remove widgets that can be removed

to delete after <URL>