diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -805,6 +805,18 @@
 <!--91E5D7B5261E4ACCBDCFC2C1153CDE50-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--91E5D7B5261E4ACCBDCFC2C1153CDE50--></AD_MESSAGE>
 
+<!--928A04A63E3F4D0982B87409051E62BA--><AD_MESSAGE>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <AD_MESSAGE_ID><![CDATA[928A04A63E3F4D0982B87409051E62BA]]></AD_MESSAGE_ID>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <VALUE><![CDATA[OBMOBC_ErrorMaxNumber]]></VALUE>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <MSGTEXT><![CDATA[You have reached the maximum number of digits (20).]]></MSGTEXT>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--928A04A63E3F4D0982B87409051E62BA-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--928A04A63E3F4D0982B87409051E62BA--></AD_MESSAGE>
+
 <!--9342BD5B83DE47319B400D56130F236B--><AD_MESSAGE>
 <!--9342BD5B83DE47319B400D56130F236B-->  <AD_MESSAGE_ID><![CDATA[9342BD5B83DE47319B400D56130F236B]]></AD_MESSAGE_ID>
 <!--9342BD5B83DE47319B400D56130F236B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
--- a/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
+++ b/web/org.openbravo.mobile.core/source/component/ob-keyboard.js
@@ -37,18 +37,28 @@
         classes: 'span8',
         components: [{
           style: 'margin:5px',
-          components: [{
-            style: 'text-align: right; width: 100%; height: 40px;',
+          components: [{            
             components: [{
-              tag: 'pre',
-              style: 'margin: 0px 0px 9px 0px; background-color: whiteSmoke; border: 1px solid #CCC; word-wrap: break-word; font-size: 35px; height: 33px; padding: 22px 5px 0px 0px;',
-              components: [
-              // ' ', XXX:???
-              {
-                name: 'editbox',
-                tag: 'span',
-                style: 'margin-left: -10px;'
-              }]
+              kind: 'enyo.Input',
+              name: 'editbox',
+              style: 'border: 1px solid #CCC; word-wrap: break-word; font-size: 35px; height: 54px; text-align: right; width: 99%;',
+              maxlength: 13,
+              handlers: {
+                onkeydown: 'reduceFont',
+              },
+              reduceFont: function () {
+            	if(this.getValue().length > 19){
+            		OB.UTIL.showError(OB.I18N.getLabel('OBMOBC_ErrorMaxNumber'));
+                    return;
+            	}
+                if (this.getValue().length > 12) {
+                  this.setStyle('border: 1px solid #CCC; word-wrap: break-word; font-size: 25px; height: 54px; text-align: right; width: 99%;');
+                  this.setAttribute('maxlength', 20);
+                } else {
+                  this.setStyle('border: 1px solid #CCC; word-wrap: break-word; font-size: 35px; height: 54px; text-align: right; width: 99%;');
+                  this.setAttribute('maxlength', 13);
+                }
+              }
             }]
           }]
         }]
@@ -427,21 +437,21 @@
         // some scanners do not send events for each character, that's why
         // the whole contents of focusKeeper are taken
         if (keeper) {
-          this.$.editbox.setContent(keeper.value);
+          this.$.editbox.setValue(keeper.value);
           keeper.value = '';
         }
       } else {
         if (keeper) {
           if (keeper.value && keeper.value.length > 0) {
-            this.$.editbox.setContent(keeper.value);
+            this.$.editbox.setValue(keeper.value);
             keeper.value = '';
           } else {
             keeper.value = '';
-            this.$.editbox.setContent(this.$.editbox.getContent());
+            this.$.editbox.setValue(this.$.editbox.getValue());
           }
         }
       }
-      if (this.$.editbox.getContent() === '0') {
+      if (this.$.editbox.getValue() === '0') {
         this.doCommandFired({
           key: "OK"
         });
@@ -469,6 +479,7 @@
     }
     if (key.match(this.keyMatcher) || (key === 'del')) {
       this.writeCharacter(key);
+      this.$.editbox.reduceFont();
     } else {
       this.doCommandFired({
         key: key
@@ -479,12 +490,12 @@
   writeCharacter: function (character) {
     var t;
     if (character.match(this.keyMatcher) && this.isEnabled) {
-      t = this.$.editbox.getContent();
-      this.$.editbox.setContent(t + character);
+      t = this.$.editbox.getValue();
+      this.$.editbox.setValue(t + character);
     } else if (character === 'del') {
-      t = this.$.editbox.getContent();
+      t = this.$.editbox.getValue();
       if (t.length > 0) {
-        this.$.editbox.setContent(t.substring(0, t.length - 1));
+        this.$.editbox.setValue(t.substring(0, t.length - 1));
       }
     }
   },
@@ -549,18 +560,18 @@
   },
 
   getString: function () {
-    var s = this.$.editbox.getContent();
-    this.$.editbox.setContent('');
+    var s = this.$.editbox.getValue();
+    this.$.editbox.setValue('');
     return s;
   },
 
   clearInput: function () {
-    this.$.editbox.setContent('');
+    this.$.editbox.setValue('');
     document.getElementById('_focusKeeper').value = '';
     this.setStatus('');
   },
   clearEditBox: function () {
-    this.$.editbox.setContent('');
+    this.$.editbox.setValue('');
     document.getElementById('_focusKeeper').value = '';
   },
   commandHandler: function (inSender, inEvent) {
