diff --git a/addon/components/ember-remodal.js b/addon/components/ember-remodal.js
index <HASH>..<HASH> 100644
--- a/addon/components/ember-remodal.js
+++ b/addon/components/ember-remodal.js
@@ -53,6 +53,7 @@ export default Component.extend({
   },
 
   willDestroy() {
+    scheduleOnce('destroy', this, '_destroyDomElements');
     scheduleOnce('afterRender', this, '_deregisterObservers');
   },
 
@@ -127,6 +128,14 @@ export default Component.extend({
     Ember.$(document).off('closed', modal);
   },
 
+  _destroyDomElements() {
+    const modal = this.get('modal');
+
+    if (modal) {
+      modal.destroy();
+    }
+  },
+
   _createInstanceAndOpen() {
     let modal = Ember.$(this.get('modalId')).remodal({
       hashTracking: this.get('hashTracking'),
call remodal's native destroy on willDestroyElement

without calling remodal’s native `destroy()`, the dom elements that it
creates are left around after the `ember-remodal` component instance
has been destroyed, resulting in a resource leak. Closes #<I>