diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod
index 3e594fdf6c0dd8614fd4b85533e42f1ba771bb8c..51dc0bd7bfd69c2c7c0234e4865cb7fe70415659 100644
--- a/entity/Offer_entity/Offer_entity.aod
+++ b/entity/Offer_entity/Offer_entity.aod
@@ -359,9 +359,12 @@
       <title>Choose address</title>
       <consumer>PossibleAddresses</consumer>
       <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js</stateProcess>
+      <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js</displayValueProcess>
       <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/onValueChange.js</onValueChange>
       <onValueChangeTypes>
         <element>MASK</element>
+        <element>PROCESS</element>
       </onValueChangeTypes>
     </entityField>
     <entityConsumer>
diff --git a/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js b/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..698ddd21921ba4623f9eeae0c1a61f579da714f5
--- /dev/null
+++ b/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("PostalAddress_lib");
+import("system.result");
+
+result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$this.value")))
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ebcf9a49b9f2a8d6f2a5b7f54b38fb6a2481fce
--- /dev/null
+++ b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js
@@ -0,0 +1,11 @@
+import("Contact_lib");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && !vars.get("$field.ADDRESS"))
+{
+    var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID"));
+    if (defaultAddressId)
+        result.string(defaultAddressId);
+}
\ No newline at end of file
diff --git a/process/Contact_lib/process.js b/process/Contact_lib/process.js
index 7539546b86e240ee05c0c28df960fec4ef92a420..f533b09e7c845e0beb0501277af23ea1a42e228b 100644
--- a/process/Contact_lib/process.js
+++ b/process/Contact_lib/process.js
@@ -332,6 +332,17 @@ ContactUtils.getFullContactString = function()
     + " left join ADDRESS on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID";
 }
 
+/**
+ * get the addressid of the default address
+ *
+ * @return {String} the ID or "" if no default address exists
+ */
+ContactUtils.getDefaultAddressId = function(pContactId)
+{
+    return db.cell(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId)
+                               .buildSql("select ADDRESS_ID from CONTACT", "1=2"));
+}
+
 /**
  * object for handling of a single contact
  * provides static- and instance-functions