diff --git a/modal/index.js b/modal/index.js
index <HASH>..<HASH> 100644
--- a/modal/index.js
+++ b/modal/index.js
@@ -137,6 +137,19 @@ Modal.prototype.setVisible = function(enabled) {
 Modal.prototype.setActive_ = function(active, opt_modalId, opt_updateState) {
   var activeAttr = 'data-' + this.config.className + '-active-id';
   if (active) {
+
+    // Revert child node which may exist if modal is consequetively opened
+    // without being closed.
+    if(this.contentContainerEl.firstChild) {
+      var activeId = this.contentContainerEl.getAttribute(activeAttr);
+      this.contentContainerEl.removeAttribute(activeAttr);
+      var originalContainer = document.querySelector(
+          '[data-' + this.config.className + '="' + activeId + '"]');
+      if (originalContainer) {
+        originalContainer.appendChild(this.contentContainerEl.firstChild);
+      }
+    }
+
     var containerEl = document.querySelector(
         '[data-' + this.config.className + '="' + opt_modalId + '"]');
     var contentEl = containerEl.querySelector('div');
Fix issues in which duplicate nodes are appended to modal if open is called consecutively.