diff --git a/web/org.openbravo.mobile.core/source/component/ob-terminal-component.js b/web/org.openbravo.mobile.core/source/component/ob-terminal-component.js
--- a/web/org.openbravo.mobile.core/source/component/ob-terminal-component.js
+++ b/web/org.openbravo.mobile.core/source/component/ob-terminal-component.js
@@ -81,19 +81,24 @@
         }
       },
       showPopup: function (popupName, args) {
+        var popup = this.getPopup(popupName);
+        if (popup) {
+          popup.show(args);
+        }
+        return true;
+      },
+      getPopup: function (popupName) {
         var componentsArray, i;
         if (OB.MobileApp.view.$[popupName]) {
-          OB.MobileApp.view.$[popupName].show(args);
-          return true;
+          return OB.MobileApp.view.$[popupName];
         }
         componentsArray = this.getComponents();
         for (i = 0; i < componentsArray.length; i++) {
           if (componentsArray[i].$[popupName]) {
-            componentsArray[i].$[popupName].show(args);
-            break;
+            return componentsArray[i].$[popupName];
           }
         }
-        return true;
+        return false;
       },
       hidePopupHandler: function (inSender, inEvent) {
         if (inEvent.popup) {
@@ -289,7 +294,8 @@
   resizeWindow: function () {
     var winHeight = window.innerHeight,
         winWidth = window.innerWidth,
-        percentage, appHeight = 700;
+        percentage, appHeight = 700,
+        openedPopups, popupEnyoName, popupEnyoObj, i;
 
     // resize in case of window rotation but not if virtual keyboard appears
     // hack: virtual keyboard is detected because only y is resized but not x
@@ -305,11 +311,25 @@
 
       percentage = window.innerHeight * 100 / appHeight;
       percentage = Math.floor(percentage) / 100;
+      openedPopups = document.getElementsByClassName('enyo-popup onyx-popup modal modal-popup');
       document.body.style.zoom = percentage;
 
-      // after zooming, force render again
-      // if this is not done, iPad's Safari messes the layout when going from 1 to 2 columns
-      this.render();
+      // In iPad's Safari after zooming, force render again.
+      // if this is not done, the browser messes the layout when going from 1 to 2 columns.
+      if (window.navigator.userAgent.indexOf('iPad') !== -1) {
+        // Hide the openedPopups (if opened) and destroy the generated HTML DOM components.
+        for (i = 0; i < openedPopups.length; i++) {
+          popupEnyoName = openedPopups[i].id.replace('terminal_containerWindow_pointOfSale_', '');
+          popupEnyoObj = OB.MobileApp.view.$.containerWindow.getPopup(popupEnyoName);
+          if (popupEnyoObj) {
+            popupEnyoObj.hide();
+          }
+          if (openedPopups[i] && openedPopups[i].parentNode) {
+            openedPopups[i].parentNode.removeChild(openedPopups[i]);
+          }
+        }
+        this.render();
+      }
     }
   },
 
