diff --git a/src-test/org/openbravo/test/mobile/common/selenium/utils/AllowedErrorsHelper.java b/src-test/org/openbravo/test/mobile/common/selenium/utils/AllowedErrorsHelper.java
--- a/src-test/org/openbravo/test/mobile/common/selenium/utils/AllowedErrorsHelper.java
+++ b/src-test/org/openbravo/test/mobile/common/selenium/utils/AllowedErrorsHelper.java
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo S.L.U.
- * All portions are Copyright (C) 2008-2015 Openbravo S.L.U.
+ * All portions are Copyright (C) 2008-2016 Openbravo S.L.U.
  * All Rights Reserved.
  * Contributor(s):
  ************************************************************************
@@ -93,6 +93,10 @@
     tomcatAllowedErrors.add("Could not execute JDBC batch update");
     tomcatAllowedErrors
         .add("current transaction is aborted, commands ignored until end of transaction block");
+    tomcatAllowedErrors
+        .add("ERROR org.openbravo.authentication.AuthenticationExpirationPasswordException - Your password has expired. Please provide a new one.");
+    tomcatAllowedErrors
+        .add("ERROR org.openbravo.authentication.AuthenticationExpirationPasswordException - Password must be different from the previous one");
     return tomcatAllowedErrors;
   }
 
diff --git a/src-test/org/openbravo/test/mobile/common/selenium/javascript/TestId.java b/src-test/org/openbravo/test/mobile/common/selenium/javascript/TestId.java
--- a/src-test/org/openbravo/test/mobile/common/selenium/javascript/TestId.java
+++ b/src-test/org/openbravo/test/mobile/common/selenium/javascript/TestId.java
@@ -86,6 +86,9 @@
   FIELD_LOGIN_PASSWORD("login_password"), //
   BUTTON_LOGIN("login_loginButton", EnyoKind.BUTTON), //
   LABEL_APPVERSION("login_appNameVersion"), //
+  FIELD_LOGIN_NEWPASSWORD("newAttribute_password"), //
+  FIELD_LOGIN_CONFIRMPASSWORD("newAttribute_confirmpassword"), //
+  LABEL_LOGIN_NEWPASSWORD("bodyContent_newheader"), //
 
   // Tables
   TABLE_PRODUCTS("table_productTable", EnyoKind.SCROLLABLETABLE, "identifier"), //
diff --git a/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/I31796_ChangePassword.java b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/I31796_ChangePassword.java
new file mode 100644
--- /dev/null
+++ b/src-test/org/openbravo/test/mobile/retail/pack/selenium/tests/receipts/I31796_ChangePassword.java
@@ -0,0 +1,102 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.0  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo S.L.U.
+ * All portions are Copyright (C) 2016 Openbravo S.L.U.
+ * All Rights Reserved.
+ * Contributor(s):
+ ************************************************************************
+ *
+ * @author GIG
+ *
+ */
+
+package org.openbravo.test.mobile.retail.pack.selenium.tests.receipts;
+
+import org.junit.Test;
+import org.openbravo.test.mobile.common.selenium.database.DatabaseHelperInsertUpdateOrDelete;
+import org.openbravo.test.mobile.common.selenium.javascript.TestId;
+import org.openbravo.test.mobile.common.selenium.terminals.WebPOSTerminalHelper;
+import org.openbravo.test.mobile.common.selenium.testhelpers.SequentialTestInfo;
+import org.openbravo.test.mobile.common.selenium.utils.OBConstants;
+import org.openbravo.test.mobile.common.selenium.utils.OBUtils;
+
+public class I31796_ChangePassword extends WebPOSTerminalHelper {
+
+  @Test
+  public void test() {
+
+    logOut();
+
+    try {
+
+      final String setClient = "update ad_client set daystopasswordexpiration=100 where ad_client_id = '39363B0921BB4293B48383844325E84C';";
+      new DatabaseHelperInsertUpdateOrDelete() {
+      }.execute(setClient, 1);
+
+      final String setUser = "update ad_user set lastpasswordupdate='2013-07-04 23:45:48.22' where ad_user_id = '3073EDF96A3C42CC86C7069E379522D2';";
+      new DatabaseHelperInsertUpdateOrDelete() {
+      }.execute(setUser, 1);
+
+      TestId.LABEL_LOGIN_OPENBRAVOMOBILE.enyoNode().waitUntilIsReady();
+      OBUtils.pause(OBConstants.WAIT_AFTERWEBPOSLOGO);
+      verify(TestId.LABEL_LOGIN_OPENBRAVOMOBILE, "Openbravo Mobile");
+      write(TestId.FIELD_LOGIN_USERNAME, "vallblanca");
+      write(TestId.FIELD_LOGIN_PASSWORD, "openbravo");
+      OBUtils.pause(OBConstants.WAIT_FORUITOUPDATE);
+      tap(TestId.BUTTON_LOGIN);
+
+      // Add same pwd as before
+      write(TestId.FIELD_LOGIN_NEWPASSWORD, "openbravo");
+      write(TestId.FIELD_LOGIN_CONFIRMPASSWORD, "openbravo");
+      tap(TestId.BUTTON_POPUP_MODALACTION_OK);
+      verify(TestId.LABEL_LOGIN_NEWPASSWORD, "Password must be different from the previous one");
+
+      // Add wrong confirm pwd
+      write(TestId.FIELD_LOGIN_NEWPASSWORD, "openbravo");
+      write(TestId.FIELD_LOGIN_CONFIRMPASSWORD, "test");
+      tap(TestId.BUTTON_POPUP_MODALACTION_OK);
+      verify(TestId.LABEL_LOGIN_NEWPASSWORD, "Password must be the same in both fields");
+
+      // Add new pwd
+      write(TestId.FIELD_LOGIN_NEWPASSWORD, "test");
+      write(TestId.FIELD_LOGIN_CONFIRMPASSWORD, "test");
+      tap(TestId.BUTTON_POPUP_MODALACTION_OK);
+
+      postLogInActions();
+
+      // verify that the application is ready
+      verifyThatTheLoginProcessHasEnded();
+
+      SequentialTestInfo.rememberPermissions();
+
+      logOut();
+
+      logIn("vallblanca", "test");
+
+    } finally {
+      logOut();
+
+      final String revertClient = "update ad_client set daystopasswordexpiration=null where ad_client_id = '39363B0921BB4293B48383844325E84C';";
+      new DatabaseHelperInsertUpdateOrDelete() {
+      }.execute(revertClient, 1);
+
+      final String revertUserPassword = "update ad_user set password='PwOd6SgWF74HY4u51bfrUxjtB9g=' where ad_user_id = '3073EDF96A3C42CC86C7069E379522D2';";
+      new DatabaseHelperInsertUpdateOrDelete() {
+      }.execute(revertUserPassword, 1);
+
+      logIn("vallblanca", "openbravo");
+
+    }
+
+  }
+}
