diff --git a/bin/backend/controls/userData/UserData.js b/bin/backend/controls/userData/UserData.js
index fca56760a7ee578c775b4f1c7f1e0d4d650185a5..d2941b467b26678724d679be0157d6c308ed44fb 100644
--- a/bin/backend/controls/userData/UserData.js
+++ b/bin/backend/controls/userData/UserData.js
@@ -23,7 +23,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
     'text!package/quiqqer/erp/bin/backend/controls/userData/UserData.html',
     'css!package/quiqqer/erp/bin/backend/controls/userData/UserData.css'
 
-], function(QUI, QUIControl, AddressWindow, ContactEmailSelectWindow, Users, QUILocale, QUIAjax, Mustache, template) {
+], function (QUI, QUIControl, AddressWindow, ContactEmailSelectWindow, Users, QUILocale, QUIAjax, Mustache, template) {
     'use strict';
 
     const pkg = 'quiqqer/erp';
@@ -83,7 +83,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
             userPanelControl: 'package/quiqqer/customer/bin/backend/Handler'
         },
 
-        initialize: function(options) {
+        initialize: function (options) {
             this.parent(options);
 
             this.addEvents({
@@ -121,11 +121,10 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * Create the DOMNoe Element
          * @returns {*}
          */
-        create: function() {
+        create: function () {
             const labelUser = this.getAttribute('labelUser');
 
-            function ignoreAutoFill(node)
-            {
+            function ignoreAutoFill(node) {
                 node.role = 'presentation';
                 node.autocomplete = 'off';
             }
@@ -242,7 +241,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {Object}
          */
-        getValue: function() {
+        getValue: function () {
             const result = {};
 
             fields.forEach((field) => {
@@ -256,7 +255,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
             return result;
         },
 
-        getAddress: function() {
+        getAddress: function () {
             return {
                 id: this.getAttribute('addressId'),
                 contactEmail: this.getAttribute('contactEmail'),
@@ -277,7 +276,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {Object} data
          * @return {Promise}
          */
-        setValue: function(data) {
+        setValue: function (data) {
             if (this.$CustomerEdit) {
                 this.$CustomerEdit.setStyle('display', 'inline');
             }
@@ -313,7 +312,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
             });
         },
 
-        refresh: function() {
+        refresh: function () {
             this.$refreshValues();
         },
 
@@ -322,8 +321,8 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {void}
          */
-        $refreshValues: function() {
-            const checkVal = function(val) {
+        $refreshValues: function () {
+            const checkVal = function (val) {
                 return !(!val || val === '' || val === 'false');
             };
 
@@ -381,7 +380,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {Object} [address] - Build address label based on given address; if omitted, use attributes.
          * @return {string}
          */
-        $getAddressLabel: function(address) {
+        $getAddressLabel: function (address) {
             const getVal = (key) => {
                 let val;
 
@@ -433,7 +432,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param userId
          * @return {Promise}
          */
-        $setDataByUserId: function(userId) {
+        $setDataByUserId: function (userId) {
             this.$oldUserId = this.getAttribute('userId');
 
             //this.$clearData();
@@ -457,6 +456,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
             this.$BtnContactEmailSelect.disabled = true;
 
             let contactPersonAddress = null;
+            let erpAddress = null;
 
             return this.$getUser().then((User) => {
                 if (!User) {
@@ -470,6 +470,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                 }
 
                 contactPersonAddress = User.getAttribute('quiqqer.erp.customer.contact.person');
+                erpAddress = User.getAttribute('quiqqer.erp.address');
 
                 this.setAttribute(
                     'quiqqer.erp.standard.payment',
@@ -496,22 +497,49 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                     return;
                 }
 
+                let mail;
+                let currentAddress = false;
                 let defaultAddress = false;
 
+                if (erpAddress) {
+                    currentAddress = erpAddress;
+                }
+
                 for (let i = 0; i < addresses.length; i++) {
                     if (addresses[i].default) {
                         defaultAddress = addresses[i];
+
+                        if (!currentAddress) {
+                            currentAddress = addresses[i];
+                        }
                         break;
                     }
                 }
 
-                if (!defaultAddress) {
-                    defaultAddress = addresses[0];
+                if (!currentAddress) {
+                    currentAddress = addresses[0];
+                }
+
+                if (typeof currentAddress.mail !== 'undefined' && !this.$setValues) {
+                    try {
+                        mail = JSON.decode(currentAddress.mail);
+
+                        if (typeof mail === 'string' && mail !== '') {
+                            this.$ContactEmail.value = mail;
+                            this.setAttribute('contactEmail', mail);
+                        }
+
+                        if (Array.isArray(mail) && typeof mail[0] !== 'undefined') {
+                            this.$ContactEmail.value = mail[0];
+                            this.setAttribute('contactEmail', mail[0]);
+                        }
+                    } catch (e) {
+                    }
                 }
 
-                if (typeof defaultAddress.mail !== 'undefined' && !this.$setValues) {
+                if (this.$ContactEmail.value === '') {
                     try {
-                        const mail = JSON.decode(defaultAddress.mail);
+                        mail = JSON.decode(defaultAddress.mail);
 
                         if (typeof mail === 'string' && mail !== '') {
                             this.$ContactEmail.value = mail;
@@ -527,7 +555,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                 }
 
                 // Set address data
-                this.$setDataByAddress(defaultAddress);
+                this.$setDataByAddress(currentAddress);
             }).then(() => {
                 this.$ContactPerson.disabled = false;
                 this.$BtnContactPersonSelect.disabled = false;
@@ -559,7 +587,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {Object} address - Address data
          * @return {void}
          */
-        $setDataByAddress: function(address) {
+        $setDataByAddress: function (address) {
             this.setAttributes(address);
             this.$AddressField.value = address.id;
 
@@ -576,7 +604,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {void}
          */
-        $clearData: function() {
+        $clearData: function () {
             this.$Company.set('value', '');
             this.$Street.set('value', '');
             this.$Zip.set('value', '');
@@ -601,15 +629,15 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {String|Number} addressId
          * @return {Promise}
          */
-        setAddressId: function(addressId) {
+        setAddressId: function (addressId) {
             const self = this;
 
-            return new Promise(function(resolve) {
+            return new Promise(function (resolve) {
                 if (self.getAttribute('userId') === '') {
                     return Promise.resolve([]);
                 }
 
-                QUIAjax.get('ajax_users_address_get', function(address) {
+                QUIAjax.get('ajax_users_address_get', function (address) {
                     if (!('id' in address)) {
                         address.id = addressId;
                     }
@@ -629,7 +657,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @returns {Promise}
          */
-        $getUser: function() {
+        $getUser: function () {
             const userId = this.getAttribute('userId');
 
             if (!userId || userId === '') {
@@ -651,7 +679,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param User
          * @return {Promise}
          */
-        getAddressList: function(User) {
+        getAddressList: function (User) {
             return new Promise((resolve, reject) => {
                 if (!User.getId()) {
                     return resolve([]);
@@ -663,10 +691,10 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                     }
 
                     // create new address
-                    return this.openCreateAddressDialog(User).then(function() {
+                    return this.openCreateAddressDialog(User).then(function () {
                         return User.getAddressList().then(resolve);
                     }).catch(reject);
-                }).catch(function() {
+                }).catch(function () {
                     resolve([]);
                 });
             });
@@ -677,14 +705,14 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {Promise}
          */
-        openAddressWindow: function() {
+        openAddressWindow: function () {
             const self = this;
 
-            return new Promise(function(resolve, reject) {
+            return new Promise(function (resolve, reject) {
                 new AddressWindow({
                     userId: self.getAttribute('userId'),
                     events: {
-                        onSubmit: function(Win, addressId) {
+                        onSubmit: function (Win, addressId) {
                             resolve(addressId);
                             Win.close();
                         },
@@ -701,13 +729,13 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
         /**
          * event on import
          */
-        $onInject: function() {
+        $onInject: function () {
             const CustomerSelectElm = this.$Elm.getElement('[name="customer"]');
 
             this.$Elm.getElement('button[name="select-address"]').addEvent('click', () => {
                 this.openAddressWindow().then((addressId) => {
                     return this.setAddressId(addressId);
-                }).catch(function() {
+                }).catch(function () {
                     // nothing
                 });
             });
@@ -784,12 +812,12 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
         /**
          * fire the change event
          */
-        $fireChange: function() {
+        $fireChange: function () {
             if (this.$triggerChange) {
                 clearTimeout(this.$triggerChange);
             }
 
-            this.$triggerChange = (function() {
+            this.$triggerChange = (function () {
                 this.fireEvent('change', [this.getValue(), this]);
             }).delay(100, this);
         },
@@ -803,16 +831,16 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param User
          * @return {Promise}
          */
-        openCreateAddressDialog: function(User) {
-            return new Promise(function(resolve, reject) {
+        openCreateAddressDialog: function (User) {
+            return new Promise(function (resolve, reject) {
                 require([
                     'package/quiqqer/erp/bin/backend/controls/userData/customers/customer/address/Window'
-                ], function(Win) {
+                ], function (Win) {
                     new Win({
                         userId: User.getId(),
                         events: {
                             onSubmit: resolve,
-                            onCancel: function() {
+                            onCancel: function () {
                                 reject('No User selected');
                             }
                         }
@@ -830,7 +858,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @returns {Promise}
          */
-        toggleExtras: function() {
+        toggleExtras: function () {
             if (this.$extrasAreOpen) {
                 return this.closeExtras();
             }
@@ -843,10 +871,10 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {Promise}
          */
-        openExtras: function() {
+        openExtras: function () {
             const self = this;
 
-            return new Promise(function(resolve) {
+            return new Promise(function (resolve) {
                 self.$rows.setStyles({
                     height: 0,
                     opacity: 0,
@@ -862,7 +890,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                     height: height
                 }, {
                     duration: 250,
-                    callback: function() {
+                    callback: function () {
                         self.$rows.setStyles({
                             display: null,
                             height: null,
@@ -874,7 +902,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
                             opacity: 1
                         }, {
                             duration: 250,
-                            callback: function() {
+                            callback: function () {
                                 self.$Extras.set({
                                     html: '<span class="fa fa-chevron-up"></span> ' +
                                         QUILocale.get(pkg, 'UserData.btn.extraClose')
@@ -894,15 +922,15 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          *
          * @return {Promise}
          */
-        closeExtras: function() {
+        closeExtras: function () {
             const self = this;
 
-            return new Promise(function(resolve) {
+            return new Promise(function (resolve) {
                 moofx(self.$rows).animate({
                     opacity: 0
                 }, {
                     duration: 250,
-                    callback: function() {
+                    callback: function () {
                         self.$rows.setStyle('display', 'none');
                         self.$extrasAreOpen = false;
 
@@ -920,15 +948,15 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
         /**
          * open the user edit panel for the customer
          */
-        editCustomer: function() {
+        editCustomer: function () {
             const self = this;
 
             if (this.$Panel) {
                 this.$Panel.Loader.show();
             }
 
-            require(['package/quiqqer/customer/bin/backend/Handler'], function(CustomerHandler) {
-                CustomerHandler.openCustomer(self.getAttribute('userId')).then(function() {
+            require(['package/quiqqer/customer/bin/backend/Handler'], function (CustomerHandler) {
+                CustomerHandler.openCustomer(self.getAttribute('userId')).then(function () {
                     self.$Panel.Loader.hide();
                 });
             });
@@ -940,7 +968,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {Object} address - Address data
          * @return {void}
          */
-        $setContactPersonByAddress: function(address) {
+        $setContactPersonByAddress: function (address) {
             if (typeof address.salutation === 'undefined' &&
                 typeof address.firstname === 'undefined' &&
                 typeof address.lastname === 'undefined') {
@@ -981,7 +1009,7 @@ define('package/quiqqer/erp/bin/backend/controls/userData/UserData', [
          * @param {Number} userId
          * @return {Promise<String>}
          */
-        $getContactEmailAddress: function(userId) {
+        $getContactEmailAddress: function (userId) {
             return new Promise((resolve, reject) => {
                 QUIAjax.get('package_quiqqer_erp_ajax_userData_getContactEmailAddress', resolve, {
                     'package': pkg,