diff --git a/www/plugins/es/js/controllers/profile-controllers.js b/www/plugins/es/js/controllers/profile-controllers.js
index 0a98e7d5e9a591432195466041116c0f1db0beaf..c2d4f92013db2a71951199e6793edec4ed0f18ed 100644
--- a/www/plugins/es/js/controllers/profile-controllers.js
+++ b/www/plugins/es/js/controllers/profile-controllers.js
@@ -90,48 +90,47 @@ function ESViewEditProfileController($scope, $q, $timeout, $state, $focus, $tran
   $scope.$on('$ionicView.enter', $scope.enter);
 
   $scope.$on('$stateChangeStart', function (event, next, nextParams, fromState) {
-    if ($scope.dirty && !$scope.saving) {
+    if (!$scope.dirty || $scope.saving || event.defaultPrevented) return;
 
-      // stop the change state action
-      event.preventDefault();
+    // stop the change state action
+    event.preventDefault();
 
-      if (!$scope.loading) {
-        $scope.loading = true;
-        return UIUtils.alert.confirm('CONFIRM.SAVE_BEFORE_LEAVE',
-          'CONFIRM.SAVE_BEFORE_LEAVE_TITLE', {
-            cancelText: 'COMMON.BTN_NO',
-            okText: 'COMMON.BTN_YES_SAVE'
-          })
-          .then(function(confirmSave) {
-            $scope.loading = false;
-            if (confirmSave) {
-              $scope.form.$submitted=true;
-              return $scope.save(false/*silent*/, true/*haswait debounce*/)
-                .then(function(saved){
-                  if (saved) {
-                    $scope.dirty = false;
-                  }
-                  return saved; // change state only if not error
-                });
-            }
-            else {
-              $scope.dirty = false;
-              return true; // ok, change state
-            }
-          })
-          .then(function(confirmGo) {
-            if (confirmGo) {
-              // continue to the order state
-              $ionicHistory.nextViewOptions({
-                historyRoot: true
+    if (!$scope.loading) {
+      $scope.loading = true;
+      return UIUtils.alert.confirm('CONFIRM.SAVE_BEFORE_LEAVE',
+        'CONFIRM.SAVE_BEFORE_LEAVE_TITLE', {
+          cancelText: 'COMMON.BTN_NO',
+          okText: 'COMMON.BTN_YES_SAVE'
+        })
+        .then(function(confirmSave) {
+          $scope.loading = false;
+          if (confirmSave) {
+            $scope.form.$submitted=true;
+            return $scope.save(false/*silent*/, true/*haswait debounce*/)
+              .then(function(saved){
+                if (saved) {
+                  $scope.dirty = false;
+                }
+                return saved; // change state only if not error
               });
-              $state.go(next.name, nextParams);
-            }
-          })
-          .catch(function(err) {
-            // Silent
-          });
-      }
+          }
+          else {
+            $scope.dirty = false;
+            return true; // ok, change state
+          }
+        })
+        .then(function(confirmGo) {
+          if (confirmGo) {
+            // continue to the order state
+            $ionicHistory.nextViewOptions({
+              historyRoot: true
+            });
+            $state.go(next.name, nextParams);
+          }
+        })
+        .catch(function(err) {
+          // Silent
+        });
     }
   });
 
diff --git a/www/plugins/es/js/controllers/registry-controllers.js b/www/plugins/es/js/controllers/registry-controllers.js
index 621387f58a54b74b52dacdf0c914bd7b9bff9a2a..44ab53d1ab260c66ce4785d86a110797476de432 100644
--- a/www/plugins/es/js/controllers/registry-controllers.js
+++ b/www/plugins/es/js/controllers/registry-controllers.js
@@ -1053,48 +1053,47 @@ function ESRegistryRecordEditController($scope, $timeout,  $state, $q, $ionicHis
   });
 
   $scope.$on('$stateChangeStart', function (event, next, nextParams, fromState) {
-    if ($scope.dirty && !$scope.saving) {
-
-      // stop the change state action
-      event.preventDefault();
-
-      if (!$scope.loading) {
-        $scope.loading = true;
-        return UIUtils.alert.confirm('CONFIRM.SAVE_BEFORE_LEAVE',
-          'CONFIRM.SAVE_BEFORE_LEAVE_TITLE', {
-            cancelText: 'COMMON.BTN_NO',
-            okText: 'COMMON.BTN_YES_SAVE'
-          })
-          .then(function(confirmSave) {
-            $scope.loading = false;
-            if (confirmSave) {
-              $scope.form.$submitted=true;
-              return $scope.save(false/*silent*/, true/*haswait debounce*/)
-                .then(function(saved){
-                  if (saved) {
-                    $scope.dirty = false;
-                  }
-                  return saved; // change state only if not error
-                });
-            }
-            else {
-              $scope.dirty = false;
-              return true; // ok, change state
-            }
-          })
-          .then(function(confirmGo) {
-            if (confirmGo) {
-              // continue to the order state
-              $ionicHistory.nextViewOptions({
-                historyRoot: true
+    if (!$scope.dirty || $scope.saving || event.defaultPrevented) return;
+
+    // stop the change state action
+    event.preventDefault();
+
+    if (!$scope.loading) {
+      $scope.loading = true;
+      return UIUtils.alert.confirm('CONFIRM.SAVE_BEFORE_LEAVE',
+        'CONFIRM.SAVE_BEFORE_LEAVE_TITLE', {
+          cancelText: 'COMMON.BTN_NO',
+          okText: 'COMMON.BTN_YES_SAVE'
+        })
+        .then(function(confirmSave) {
+          $scope.loading = false;
+          if (confirmSave) {
+            $scope.form.$submitted=true;
+            return $scope.save(false/*silent*/, true/*haswait debounce*/)
+              .then(function(saved){
+                if (saved) {
+                  $scope.dirty = false;
+                }
+                return saved; // change state only if not error
               });
-              $state.go(next.name, nextParams);
-            }
-          })
-          .catch(function(err) {
-            // Silent
-          });
-      }
+          }
+          else {
+            $scope.dirty = false;
+            return true; // ok, change state
+          }
+        })
+        .then(function(confirmGo) {
+          if (confirmGo) {
+            // continue to the order state
+            $ionicHistory.nextViewOptions({
+              historyRoot: true
+            });
+            $state.go(next.name, nextParams);
+          }
+        })
+        .catch(function(err) {
+          // Silent
+        });
     }
   });