diff --git a/apps/contacts/ajax/addcard.php b/apps/contacts/ajax/addcard.php
index 7e47659d23bb67dfa9cb78e39bfda75edeec2f78..140d6a48095a85aa2eb4ae1c0650db358df9af42 100644
--- a/apps/contacts/ajax/addcard.php
+++ b/apps/contacts/ajax/addcard.php
@@ -22,6 +22,11 @@
 
 // Init owncloud
 require_once('../../../lib/base.php');
+function bailOut($msg) {
+	OC_JSON::error(array('data' => array('message' => $msg)));
+	OC_Log::write('contacts','ajax/addcard.php: '.$msg, OC_Log::DEBUG);
+	exit();
+}
 
 // Check if we are a user
 OC_JSON::checkLoggedIn();
@@ -31,12 +36,22 @@ $l=new OC_L10N('contacts');
 $aid = $_POST['id'];
 $addressbook = OC_Contacts_App::getAddressbook( $aid );
 
-$fn = $_POST['fn'];
+$fn = trim($_POST['fn']);
 $values = $_POST['value'];
 $parameters = $_POST['parameters'];
 
 $vcard = new OC_VObject('VCARD');
 $vcard->setUID();
+
+$n = isset($values['N'][0])?trim($values['N'][0]).';':';';
+$n .= isset($values['N'][1])?trim($values['N'][1]).';':';';
+$n .= isset($values['N'][2])?trim($values['N'][2]).';;':';;';
+
+if(!$fn || ($n == ';;;;')) {
+	bailOut('You have to enter both the extended name and the display name.');
+}
+
+$vcard->setString('N',$n);
 $vcard->setString('FN',$fn);
 
 // Data to add ...
@@ -58,6 +73,10 @@ foreach( $add as $propname){
 	} else {
 		$prop_parameters = array();
 	}
+	if(is_array($value)){
+		ksort($value); // NOTE: Important, otherwise the compound value will be set in the order the fields appear in the form!
+		$value = OC_VObject::escapeSemicolons($value);
+	}
 	$vcard->addProperty($propname, $value); //, $prop_parameters);
 	$line = count($vcard->children) - 1;
 	foreach ($prop_parameters as $key=>$element) {
@@ -77,7 +96,7 @@ foreach( $add as $propname){
 $id = OC_Contacts_VCard::add($aid,$vcard->serialize());
 if(!$id) {
 	OC_JSON::error(array('data' => array('message' => $l->t('There was an error adding the contact.'))));
-	OC_Log::write('contacts','ajax/addcard.php: Recieved non-positive ID on adding card: '.$name, OC_Log::ERROR);
+	OC_Log::write('contacts','ajax/addcard.php: Recieved non-positive ID on adding card: '.$id, OC_Log::ERROR);
 	exit();
 }
 
diff --git a/apps/contacts/ajax/addproperty.php b/apps/contacts/ajax/addproperty.php
index a4b5c591197c39eaa1ad563a0ffa02c90cf4963a..c90af217c87c7da16180723ffba7405edb00e44a 100644
--- a/apps/contacts/ajax/addproperty.php
+++ b/apps/contacts/ajax/addproperty.php
@@ -54,6 +54,21 @@ if(!is_array($value)){
 }
 $parameters = isset($_POST['parameters']) ? $_POST['parameters'] : array();
 
+// Prevent setting a duplicate entry
+$current = $vcard->select($name);
+foreach($current as $item) {
+	$tmpvalue = (is_array($value)?implode(';', $value):$value);
+	if($tmpvalue == $item->value) {
+		OC_JSON::error(array('data' => array('message' => $l->t('Trying to add duplicate property: ').$name.': '.$tmpvalue)));
+		OC_Log::write('contacts','ajax/addproperty.php: Trying to add duplicate property: '.$name.': '.$tmpvalue, OC_Log::DEBUG);
+		exit();
+	}
+}
+
+if(is_array($value)) {
+	ksort($value);  // NOTE: Important, otherwise the compound value will be set in the order the fields appear in the form!
+}
+
 $property = $vcard->addProperty($name, $value); //, $parameters);
 
 $line = count($vcard->children) - 1;
@@ -74,14 +89,6 @@ foreach ($parameters as $key=>$element) {
 }
 $checksum = md5($vcard->children[$line]->serialize());
 
-/* FIXME: OC_Contacts_App::getPropertyLineByChecksum throws an OC_JSON error when doing this check.
-   Fix for v. 3.1
-if(!is_null(OC_Contacts_App::getPropertyLineByChecksum($id, $checksum))) {
-	OC_JSON::error(array('data' => array('message' => $l->t('Trying to add duplicate property.'))));
-	OC_Log::write('contacts','ajax/addproperty.php: Trying to add duplicate property: '.$name, OC_Log::DEBUG);
-	exit();
-}
-*/
 if(!OC_Contacts_VCard::edit($id,$vcard->serialize())) {
 	OC_JSON::error(array('data' => array('message' => $l->t('Error adding contact property.'))));
 	OC_Log::write('contacts','ajax/addproperty.php: Error updating contact property: '.$name, OC_Log::ERROR);
diff --git a/apps/contacts/ajax/deleteproperty.php b/apps/contacts/ajax/deleteproperty.php
index 89cf292f4f8a488c83520329b7e75e7978c12820..d745d3271db5f2a186fa5f0a86d85ab6ecebb36e 100644
--- a/apps/contacts/ajax/deleteproperty.php
+++ b/apps/contacts/ajax/deleteproperty.php
@@ -33,6 +33,11 @@ $checksum = $_GET['checksum'];
 
 $vcard = OC_Contacts_App::getContactVCard( $id );
 $line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
+if(is_null($line)){
+	$l=new OC_L10N('contacts');
+	OC_JSON::error(array('data' => array( 'message' => $l->t('Information about vCard is incorrect. Please reload the page.'))));
+	exit();
+}
 
 unset($vcard->children[$line]);
 
diff --git a/apps/contacts/ajax/setproperty.php b/apps/contacts/ajax/setproperty.php
index cdc6d34c52472c00106aa9986d6092b7d302cdd5..cf3fe5822477227c511e2ca6f67c4fd9a74f2615 100644
--- a/apps/contacts/ajax/setproperty.php
+++ b/apps/contacts/ajax/setproperty.php
@@ -36,8 +36,9 @@ $line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
 // Set the value
 $value = $_POST['value'];
 if(is_array($value)){
-	$value = OC_VObject::escapeSemicolons($value);
+	ksort($value);  // NOTE: Important, otherwise the compound value will be set in the order the fields appear in the form!
 }
+OC_Log::write('contacts','ajax/setproperty.php: setting: '.$vcard->children[$line]->name.': '.$value, OC_Log::DEBUG);
 $vcard->children[$line]->setValue($value);
 
 // Add parameters
@@ -87,6 +88,9 @@ $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
 if ($vcard->children[$line]->name == 'FN'){
 	$tmpl = new OC_Template('contacts','part.property.FN');
 }
+elseif ($vcard->children[$line]->name == 'N'){
+	$tmpl = new OC_Template('contacts','part.property.N');
+}
 else{
 	$tmpl = new OC_Template('contacts','part.property');
 }
diff --git a/apps/contacts/ajax/showsetproperty.php b/apps/contacts/ajax/showsetproperty.php
index e23fa21c56ba32812d32c948a64e89d421c00492..577230e45669f5160ace854c37e178e38d49da7b 100644
--- a/apps/contacts/ajax/showsetproperty.php
+++ b/apps/contacts/ajax/showsetproperty.php
@@ -33,6 +33,11 @@ $checksum = $_GET['checksum'];
 $vcard = OC_Contacts_App::getContactVCard( $id );
 
 $line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
+if(is_null($line)){
+	$l=new OC_L10N('contacts');
+	OC_JSON::error(array('data' => array( 'message' => $l->t('Information about vCard is incorrect. Please reload the page.'))));
+	exit();
+}
 
 $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
 $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
diff --git a/apps/contacts/css/styles.css b/apps/contacts/css/styles.css
index 4fcd8fc113161a0aeb24337cdde2bbf29197cf32..58e1bf6c93e8c6d7ca1bd800d78977ef1eb2dc8f 100644
--- a/apps/contacts/css/styles.css
+++ b/apps/contacts/css/styles.css
@@ -2,6 +2,7 @@
 #leftcontent a { height: 23px; display: block; margin: 0 0 0 0; padding: 0 0 0 25px; }
 #chooseaddressbook {margin-right: 170px; float: right;}
 #contacts_details_name { font-weight:bold;font-size:1.1em;margin-left:25%;}
+#contacts_details_name_n { font-size:0.8em;margin-left:25%;color:#666;}
 #contacts_details_photo { margin:.5em 0em .5em 25%; }
 
 #contacts_deletecard {position:absolute;top:15px;right:25px;}
@@ -12,41 +13,15 @@
 #contacts_details_list li p.contacts_property_data, #contacts_details_list li ul.contacts_property_data { width:72%;float:left; clear: right; }
 #contacts_setproperty_button { margin-left:25%; }
 
-dl.form
-{
-	width: 100%;
-	float: left;
-	clear: right;
-	margin: 1em;
-	padding: 0;
-}
+#contacts_addcardform legend,label { font-weight: bold; width: 10em; overflow: ellipsis; }
+#contacts_addcardform legend { padding-left: 3em; font-size:1.1em; }
+#contacts_addcardform input[type="text"] { width: 25em; }
+#contacts_addcardform input[type="email"] { width: 15em; }
+#contacts_addcardform input[type="tel"] { width: 15em; }
 
-.form dt
-{
-	display: table-cell;
-	clear: left;
-	float: left;
-	min-width: 10em;
-	margin: 0;
-	padding-top: 0.5em;
-	padding-right: 1em;
-	font-weight: bold;
-	text-align:right;
-	vertical-align: text-bottom;
-	bottom: 0px;
-}
-
-.form dd
-{
-	display: table-cell;
-	clear: right;
-	float: left;
-	min-width: 20em;
-	margin: 0;
-	padding: 0;
-	white-space: nowrap;
-	top: 0px;
-}
+dl.form { width: 100%; float: left; clear: right; margin: 1em; padding: 0; }
+.form dt { display: table-cell; clear: left; float: left; min-width: 10em; margin: 0; padding-top: 0.5em; padding-right: 1em;font-weight: bold; text-align:right; vertical-align: text-bottom; bottom: 0px; }
+.form dd { display: table-cell; clear: right; float: left; min-width: 20em; margin: 0; padding: 0; white-space: nowrap; top: 0px; }
 .form input { position: relative; width: 20em; }
 
 .contacts_property_data ul, ol.contacts_property_data { list-style:none; }
@@ -60,18 +35,3 @@ dl.form
 .chzn-container.chzn-container-active .chzn-choices { border-bottom-left-radius: 0;border-bottom-right-radius: 0; }
 .chzn-container .chzn-drop { border-bottom-left-radius: 0.5em;border-bottom-right-radius: 0.5em; }
 
-/* Form setup ----------------------------------------------------------------*/
-/* .forme {} */
-/* .forme ul, .forme ol { list-style:none; } */
-/* .forme .inputs, .forme .buttons { overflow: hidden; } */
-
-/* Labels --------------------------------------------------------------------*/
-/* .forme .input .label { width:25%; float:left; display:block; } */
-
-/* Inputs --------------------------------------------------------------------*/
-/* .forme .stringish input { width:72%; } */
-/* .forme .text textarea { width:72%; } */
-
-/* Buttons -------------------------------------------------------------------*/
-/* .forme .buttons { padding-left:25%; } */
-/* .forme .button { float:left; padding-left:0.5em; } */
diff --git a/apps/contacts/lib/app.php b/apps/contacts/lib/app.php
index 39df497043bd80fdf9c8523688791225fe79ce06..580cc72d5eb0a5f5fb3a7e90826134c130fe921c 100644
--- a/apps/contacts/lib/app.php
+++ b/apps/contacts/lib/app.php
@@ -85,11 +85,6 @@ class OC_Contacts_App{
 				break;
 			}
 		}
-		// FIXME: I'm not sure this should throw a JSON error as it might just be used to check for dupes. /Tanghus.
-		if(is_null($line)){
-			OC_JSON::error(array('data' => array( 'message' => self::$l10n->t('Information about vCard is incorrect. Please reload the page.'))));
-			exit();
-		}
 		return $line;
 	}
 
diff --git a/apps/contacts/templates/part.addcardform.php b/apps/contacts/templates/part.addcardform.php
index 11457ff26970bf373b87a09d34e6b8ebe0c50004..17207d2ebcb27b3a319a62cb57d44b16c0b302e8 100644
--- a/apps/contacts/templates/part.addcardform.php
+++ b/apps/contacts/templates/part.addcardform.php
@@ -1,11 +1,14 @@
-<form class="formtastic" id="contacts_addcardform">
+<?php
+$l=new OC_L10N('contacts');
+?>
+<form id="contacts_addcardform">
 	<?php if(count($_['addressbooks'])==1): ?>
 		<input type="hidden" name="id" value="<?php echo $_['addressbooks'][0]['id']; ?>">
 	<?php else: ?>
 		<fieldset class="inputs">
 			<dl class="form">
 				<dt>
-					<label class="label" for="id"><?php echo $l->t('Addressbook'); ?></label>
+					<label for="id"><?php echo $l->t('Addressbook'); ?></label>
 				</dt>
 				<dd>
 					<select name="id" size="1">
@@ -18,13 +21,37 @@
 	<fieldset class="inputs">
 		<dl class="form">
 			<dt>
-				<label class="label" for="fn"><?php echo $l->t('Name'); ?></label>
+				<label for="n1"><?php echo $l->t('Given name'); ?></label>
 			</dd>
 			<dd>
-				<input id="fn" type="text" name="fn" value=""><br>
+				<input id="n1" type="text" name="value[N][1]" value="">
 			</dd>
 			<dt>
-				<label class="label" for="org"><?php echo $l->t('Organization'); ?></label>
+				<label for="n0"><?php echo $l->t('Family name'); ?></label>
+			</dd>
+			<dd>
+				<input id="n0" type="text" name="value[N][0]" value="">
+			</dd>
+			<dt>
+				<label for="n2"><?php echo $l->t('Additional names'); ?></label>
+			</dd>
+			<dd>
+				<input id="n2" type="text" name="value[N][2]" value="">
+				<input type="hidden" name="value[N][4]" value="">
+				<input type="hidden" name="value[N][5]" value="">
+			</dd>
+		</dl>
+	</fieldset>
+	<fieldset class="inputs">
+		<dl class="form">
+			<dt>
+				<label for="fn"><?php echo $l->t('Display name'); ?></label>
+			</dd>
+			<dd>
+				<input id="fn" type="text" name="fn" placeholder="<?php echo $l->t('How you want the name displayed in the list'); ?>" value="">
+			</dd>
+			<dt>
+				<label for="org"><?php echo $l->t('Organization'); ?></label>
 			</dt>
 			<dd>
 				<input id="org" type="text" name="value[ORG]" value="">
@@ -34,16 +61,16 @@
 	<fieldset class="inputs">
 		<dl class="form">
 			<dt>
-				<label class="label" for="email"><?php echo $l->t('Email'); ?></label>
+				<label for="email"><?php echo $l->t('Email'); ?></label>
 			</dt>
 			<dd>
-				<input id="email" type="text" name="value[EMAIL]" value="">
+				<input id="email" type="email" name="value[EMAIL]" value="">
 			</dd>
 			<dt>
 				<label for="tel"><?php echo $l->t('Telephone'); ?></label>
 			</dt>
 			<dd>
-				<input type="phone" id="tel" name="value[TEL]" value="">
+				<input type="tel" id="tel" name="value[TEL]" value="">
 				<select id="TEL" name="parameters[TEL][TYPE][]" multiple="multiple">
 					<?php echo html_select_options($_['phone_types'], 'CELL') ?>
 				</select>
@@ -54,7 +81,7 @@
 		<legend><?php echo $l->t('Address'); ?></legend>
 		<dl class="form">
 			<dt>
-				<label class="label" for="adr_type"><?php echo $l->t('Type'); ?></label>
+				<label for="adr_type"><?php echo $l->t('Type'); ?></label>
 			</dt>
 			<dd>
 				<select id="adr_type" name="parameters[ADR][TYPE]" size="1">
@@ -62,44 +89,48 @@
 				</select>
 			</dd>
 			<dt>
-				<label class="label" for="adr_pobox"><?php echo $l->t('PO Box'); ?></label>
+				<label for="adr_pobox"><?php echo $l->t('PO Box'); ?></label>
 			</dt>
 			<dd>
-				<input type="text" id="adr_pobox" name="value[ADR][0]" value="">
+				<input type="text" id="adr_pobox" name="value[ADR][0]" placeholder="<?php echo $l->t('Post Office box'); ?>" value="">
 			</dd>
 			<dd>
-			<dt>
+			<!-- dt>
 				<label class="label" for="adr_extended"><?php echo $l->t('Extended'); ?></label>
 			</dt>
 			<dd>
 				<input type="text" id="adr_extended" name="value[ADR][1]" value="">
-			</dd>
+			</dd -->
 			<dt>
-				<label class="label" for="adr_street"><?php echo $l->t('Street'); ?></label>
+				<label for="adr_street"><?php echo $l->t('Street'); ?></label>
 			</dt>
 			<dd>
-				<input type="text" id="adr_street" name="value[ADR][2]" value="">
+				<input style="width: 12em;" type="text" id="adr_street" name="value[ADR][2]" placeholder="<?php echo $l->t('Street name and no.'); ?>" value="">
+				<label for="adr_extended"><?php echo $l->t('Extended'); ?></label>
+				<input style="width: 7em;" type="text" id="adr_extended" name="value[ADR][1]" placeholder="<?php echo $l->t('Apart. no., floor'); ?>" value="">
 			</dd>
 			<dt>
-				<label class="label" for="adr_city"><?php echo $l->t('City'); ?></label>
+				<label for="adr_city"><?php echo $l->t('City'); ?></label>
 			</dt>
 			<dd>
-				<input type="text" id="adr_city" name="value[ADR][3]" value="">
+				<input style="width: 12em;" type="text" id="adr_city" name="value[ADR][3]" value="">
+				<label for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
+				<input style="width: 5em;" type="text" id="adr_zipcode" name="value[ADR][5]" value="">
 			</dd>
 			<dt>
-				<label class="label" for="adr_region"><?php echo $l->t('Region'); ?></label>
+				<label for="adr_region"><?php echo $l->t('Region'); ?></label>
 			</dt>
 			<dd>
-				<input type="text" id="adr_region" name="value[ADR][4]" value="">
+				<input type="text" id="adr_region" name="value[ADR][4]" placeholder="<?php echo $l->t('E.g. state or province'); ?>" value="">
 			</dd>
-			<dt>
+			<!-- dt>
 				<label class="label" for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
 			</dt>
 			<dd>
 				<input type="text" id="adr_zipcode" name="value[ADR][5]" value="">
-			</dd>
+			</dd -->
 			<dt>
-				<label class="label" for="adr_country"><?php echo $l->t('Country'); ?></label>
+				<label for="adr_country"><?php echo $l->t('Country'); ?></label>
 			</dt>
 			<dd>
 				<input type="text" id="adr_country" name="value[ADR][6]" value="">
diff --git a/apps/contacts/templates/part.details.php b/apps/contacts/templates/part.details.php
index 679ae5ede2f658fc2b65bdb9f153a6b623cbd633..5badd8161550ebc6a0511f25f2825c48dd9404dc 100644
--- a/apps/contacts/templates/part.details.php
+++ b/apps/contacts/templates/part.details.php
@@ -1,5 +1,6 @@
 <?php if(array_key_exists('FN',$_['details'])): ?>
 	<?php echo $this->inc('part.property.FN', array('property' => $_['details']['FN'][0])); ?>
+	<?php echo $this->inc('part.property.N', array('property' => $_['details']['N'][0])); ?>
 	<a href="export.php?contactid=<?php echo $_['id']; ?>"><img class="svg action" id="contacts_downloadcard" src="<?php echo image_path('', 'actions/download.svg'); ?>" title="<?php echo $l->t('Download contact');?>" /></a>
 	<img class="svg action" id="contacts_deletecard" src="<?php echo image_path('', 'actions/delete.svg'); ?>" title="<?php echo $l->t('Delete contact');?>" />
 
diff --git a/apps/contacts/templates/part.property.N.php b/apps/contacts/templates/part.property.N.php
new file mode 100644
index 0000000000000000000000000000000000000000..73d599ad7b4d54baf584c009b30a744d9a480339
--- /dev/null
+++ b/apps/contacts/templates/part.property.N.php
@@ -0,0 +1,4 @@
+<p id="contacts_details_name_n" class="contacts_property" data-checksum="<?php echo $_['property']['checksum']; ?>">
+	(<?php echo $_['property']['value'][0].', '.$_['property']['value'][1].' '.$_['property']['value'][2]; ?>)
+	<span style="display:none;" data-use="edit"><img class="svg action" src="<?php echo image_path('', 'actions/rename.svg'); ?>" /></span>
+</p>
diff --git a/apps/contacts/templates/part.setpropertyform.php b/apps/contacts/templates/part.setpropertyform.php
index 3e0b8d49b528a83fca9c4852dd1250d302398879..49fa96621464cdccc3cc11b440a39a47b37e9de4 100644
--- a/apps/contacts/templates/part.setpropertyform.php
+++ b/apps/contacts/templates/part.setpropertyform.php
@@ -1,46 +1,79 @@
 	<form id="contacts_setpropertyform">
 		<input type="hidden" name="checksum" value="<?php echo $_['property']['checksum']; ?>">
 		<input type="hidden" name="id" value="<?php echo $_['id']; ?>">
-		<?php if($_['property']['name']=='FN'): ?>
+		<?php if($_['property']['name']=='N'): ?>
+			<p class="contacts_property_name">
+			<dl class="contacts_property_data form">
+				<dt><label for="n1"><?php echo $l->t('Given name'); ?></label></dt>
+				<dd><input id="n1" type="text" name="value[1]" value="<?php echo $_['property']['value'][1]; ?>"></dd>
+				<dt><label for="n0"><?php echo $l->t('Family name'); ?></dt>
+				<dd><input id="n0" type="text" name="value[0]" value="<?php echo $_['property']['value'][0]; ?>"></dd>
+				<dt><label for="n2"><?php echo $l->t('Additional names'); ?></dt>
+				<dd><input id="n2" type="text" name="value[2]" value="<?php echo $_['property']['value'][2]; ?>">
+				<input id="n3" type="hidden" name="value[3]" value="<?php echo $_['property']['value'][3]; ?>">
+				<input id="n4" type="hidden" name="value[4]" value="<?php echo $_['property']['value'][4]; ?>">
+				</dd>
+			</dl>
+			</p>
+		<?php elseif($_['property']['name']=='FN'): ?>
 			<p class="contacts_property_data"><input id="fn" type="text" name="value" value="<?php echo $_['property']['value']; ?>"></p>
 		<?php elseif($_['property']['name']=='ADR'): ?>
 			<p class="contacts_property_name"><label for="adr_pobox"><?php echo $l->t('Address'); ?></label></p>
-			<ol class="contacts_property_data" id="contacts_addresspart">
-				<li class="input">
+			<dl class="contacts_property_data form" id="contacts_addresspart">
+				<dt>
 					<label class="label" for="adr_type"><?php echo $l->t('Type'); ?></label>
+				</dt>
+				<dd>
 					<select id="adr_type" name="parameters[TYPE]" size="1">
 						<?php echo html_select_options($_['adr_types'], strtoupper($_['property']['parameters']['TYPE'])) ?>
 					</select>
-				</li>
-				<li>
+				</dd>
+				<dt>
 					<label for="adr_pobox"><?php echo $l->t('PO Box'); ?></label>
+				</dt>
+				<dd>
 					<input id="adr_pobox" type="text" name="value[0]" value="<?php echo $_['property']['value'][0] ?>">
-				</li>
-				<li>
+				</dd>
+				<!-- dt>
 					<label for="adr_extended"><?php echo $l->t('Extended'); ?></label>
-					<input id="adr_extended" type="text" name="value[1]" value="<?php echo $_['property']['value'][1] ?>">
-				</li>
-				<li>
+				</dt>
+				<dd>
+					<input style="width: 7em;" id="adr_extended" type="text" name="value[1]" value="<?php echo $_['property']['value'][1] ?>">
+				</dd -->
+				<dt>
 					<label for="adr_street"><?php echo $l->t('Street'); ?></label>
-					<input id="adr_street" type="text" name="value[2]" value="<?php echo $_['property']['value'][2] ?>">
-				</li>
-				<li>
+				</dt>
+				<dd>
+					<input style="width: 12em;" id="adr_street" type="text" name="value[2]" value="<?php echo $_['property']['value'][2] ?>">
+					<label for="adr_extended"><?php echo $l->t('Extended'); ?></label><input style="width: 7em;" id="adr_extended" type="text" name="value[1]" value="<?php echo $_['property']['value'][1] ?>">
+				</dd>
+				<dt>
 					<label for="adr_city"><?php echo $l->t('City'); ?></label>
-					<input id="adr_city" type="text" name="value[3]" value="<?php echo $_['property']['value'][3] ?>">
-				</li>
-				<li>
+				</dt>
+				<dd>
+					<input style="width: 12em;" id="adr_city" type="text" name="value[3]" value="<?php echo $_['property']['value'][3] ?>">
+					<label for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
+					<input style="width: 5em;" id="adr_zipcode" type="text" name="value[5]" value="<?php echo $_['property']['value'][5] ?>">
+				</dd>
+				<dt>
 					<label for="adr_region"><?php echo $l->t('Region'); ?></label>
+				</dt>
+				<dd>
 					<input id="adr_region" type="text" name="value[4]" value="<?php echo $_['property']['value'][4] ?>">
-				</li>
-				<li>
+				</dd>
+				<!-- dt>
 					<label for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
-					<input id="adr_zipcode" type="text" name="value[5]" value="<?php echo $_['property']['value'][5] ?>">
-				</li>
-				<li>
+				</dt>
+				<dd>
+					<input style="width: 7em;" id="adr_zipcode" type="text" name="value[5]" value="<?php echo $_['property']['value'][5] ?>">
+				</dd -->
+				<dt>
 					<label for="adr_country"><?php echo $l->t('Country'); ?></label>
-					<input id="adr_country" type="text" name="value[6]" value="<?php echo $_['property']['value'][6] ?>">
-				</li>
-			</ol>
+				</dt>
+				<dd>
+					<input style="width: 25em;" id="adr_country" type="text" name="value[6]" value="<?php echo $_['property']['value'][6] ?>">
+				</dd>
+			</dl>
 		<?php elseif($_['property']['name']=='TEL'): ?>
 			<p class="contacts_property_name"><label for="tel"><?php echo $l->t('Phone'); ?></label></p>
 			<p class="contacts_property_data"><input id="tel" type="phone" name="value" value="<?php echo $_['property']['value'] ?>">