diff --git a/odoo/addons/base/ir/ir_qweb.xml b/odoo/addons/base/ir/ir_qweb.xml
index b882a847d307175d1552afd05733c7898b1cf215..a749e30705ad13ae6abd100504b89a40d0008e77 100644
--- a/odoo/addons/base/ir/ir_qweb.xml
+++ b/odoo/addons/base/ir/ir_qweb.xml
@@ -1,20 +1,25 @@
 <odoo>
+<template id="contact_name">
+    <div t-if="'name' in fields">
+        <t t-if="object.name">
+            <span itemprop="name" t-esc="name"/>
+        </t>
+        <t t-if="not object.name and object.parent_name">
+            <span itemprop="name" t-esc="object.parent_name"/>
+        </t>
+        <div t-if="options.get('country_image') and 'country_id' in fields and object.country_id and object.country_id.image">
+            <span t-field="object.country_id.image" t-options='{"widget": "image", "class": "country_flag"}'/>
+        </div>
+    </div>
+</template>
 <template id="contact">
     <address t-ignore="true" class="mb0" itemscope="itemscope" itemtype="http://schema.org/Organization">
         <div t-if="not (('name' in fields) or (address and 'address' in fields) or (city and 'city' in fields) or (mobile and 'mobile' in fields) or (fax and 'fax' in fields) or (website and 'website' in fields) or (email and 'email' in fields))" class="css_non_editable_mode_hidden">
             --<span class="text-muted" t-esc="name"/>--
         </div>
-        <div t-if="'name' in fields">
-            <t t-if="object.name">
-                <span itemprop="name" t-esc="name"/>
-            </t>
-            <t t-if="not object.name and object.parent_name">
-                <span itemprop="name" t-esc="object.parent_name"/>
-            </t>
-            <t t-if="options.get('country_image') and 'country_id' in fields and object.country_id and object.country_id.image">
-                <span t-field="object.country_id.image" t-options='{"widget": "image", "class": "country_flag"}'/>
-            </t>
-        </div>
+        <t t-if="object.country_id.name_position != 'after'">
+            <t t-call="base.contact_name"/>
+        </t>
         <div itemprop="address" itemscope="itemscope" itemtype="http://schema.org/PostalAddress">
             <div t-if="address and 'address' in fields">
                 <i t-if="not options.get('no_marker')" class='fa fa-map-marker'/> <span itemprop="streetAddress" t-raw="address.replace('\n', options.get('no_tag_br') and ', ' or ('&lt;br/&gt;%s' % ('' if options.get('no_marker') else '&amp;nbsp; &amp;nbsp; ')))"/>
@@ -33,6 +38,9 @@
             </div>
             <div t-if="email and 'email' in fields"><i t-if="not options.get('no_marker')" class='fa fa-envelope'/> <span itemprop="email" t-esc="email"/></div>
         </div>
+        <t t-if="object.country_id and object.country_id.name_position == 'after'">
+            <t t-call="base.contact_name"/>
+        </t>
     </address>
 </template>
 </odoo>
diff --git a/odoo/addons/base/res/res_country.py b/odoo/addons/base/res/res_country.py
index bbf8784aefa65b048d23cda587fdda7caf232ad4..36e539f8e234d36520c8f38552e01158520bc12c 100644
--- a/odoo/addons/base/res/res_country.py
+++ b/odoo/addons/base/res/res_country.py
@@ -59,6 +59,11 @@ class Country(models.Model):
     country_group_ids = fields.Many2many('res.country.group', 'res_country_res_country_group_rel',
                          'res_country_id', 'res_country_group_id', string='Country Groups')
     state_ids = fields.One2many('res.country.state', 'country_id', string='States')
+    name_position = fields.Selection([
+            ('before', 'Before Address'),
+            ('after', 'After Address'),
+        ], string="Customer Name Position", default="before",
+        help="Determines where the customer/company name should be placed, i.e. after or before the address.")
 
     _sql_constraints = [
         ('name_uniq', 'unique (name)',
diff --git a/odoo/addons/base/res/res_country_data.xml b/odoo/addons/base/res/res_country_data.xml
index 056b03a47acf4637d836c8cc297b471b1aef30b6..86978437404171dcff7e5c770352f97ae883737a 100644
--- a/odoo/addons/base/res/res_country_data.xml
+++ b/odoo/addons/base/res/res_country_data.xml
@@ -804,6 +804,8 @@
             <field name="code">jp</field>
             <field file="base/static/img/country_flags/jp.png" name="image" type="base64" />
             <field name="currency_id" ref="JPY" />
+            <field name="address_format" eval="'%(zip)s\n%(state_name)s %(city)s\n%(street)s\n%(street2)\n%(country_name)s'"/>
+            <field name="name_position">after</field>
             <field eval="81" name="phone_code" />
         </record>
         <record id="ke" model="res.country">
diff --git a/odoo/addons/base/res/res_country_view.xml b/odoo/addons/base/res/res_country_view.xml
index 170bc629631cec620e11a7c40800d13750886260..5b883b993e315e9ca2703b68b73580fe01a254c3 100644
--- a/odoo/addons/base/res/res_country_view.xml
+++ b/odoo/addons/base/res/res_country_view.xml
@@ -37,6 +37,7 @@
                             <div colspan="2" class="text-muted">Choose a subview of partners that includes only address fields, to change the way users can input addresses.</div>
                             <field name="address_format" placeholder="Address format..."/>
                             <div colspan="2" name="div_address_format" class="text-muted">Change the way addresses are displayed in reports</div>
+                            <field name="name_position"/>
                         </group>
                     </group>
                     <label for="state_ids"/>