diff -rub a/vcard.module b/vcard.module
--- a/vcard.module	2011-01-19 04:17:54.000000000 -0500
+++ b/vcard.module	2012-11-09 12:22:26.000000000 -0500
@@ -228,7 +228,14 @@
     $vcard->addParam('ENCODING', '8BIT');
   }
 
-  if (isset($vcard_raw->givenname) && isset($vcard_raw->familyname)) {
+  if (isset($vcard_raw->fullname)) {
+    $full = $vcard_raw->fullname;
+    $vcard->setName('', $full, '', '', '');
+    $vcard->addParam('ENCODING', '8BIT');
+    $vcard->setFormattedName($full);
+    $vcard->addParam('ENCODING', '8BIT');
+  }
+  else if (isset($vcard_raw->givenname) && isset($vcard_raw->familyname)) {
     $givenname  = $vcard_raw->givenname;
     $familyname = $vcard_raw->familyname;
 
@@ -266,6 +273,12 @@
   }
   $vcard->addParam('ENCODING', '8BIT');
 
+  // Job Title
+  if (isset($vcard_raw->job_title)) {
+    $vcard->setTitle($vcard_raw->job_title);
+    $vcard->addParam('ENCODING', '8BIT');
+  }
+
   // Organization
   if (isset($vcard_raw->organization)) {
     $vcard->addOrganization($vcard_raw->organization);
@@ -278,19 +291,42 @@
     $vcard->addParam('ENCODING', '8BIT');
   }
 
-  // Telephone
-  if (isset($vcard_raw->telephone)) {
-    $vcard->addTelephone($vcard_raw->telephone);
+  // Home telephone
+  if (isset($vcard_raw->home_telephone)) {
+    $vcard->addTelephone($vcard_raw->home_telephone);
+    $vcard->addParam('ENCODING', '8BIT');
+    $vcard->addParam('TYPE', 'home');
     $vcard->addParam('ENCODING', '8BIT');
   }
 
-  // Address
-  $street   = isset($vcard_raw->street)   ? $vcard_raw->street   : '';
-  $city     = isset($vcard_raw->city)     ? $vcard_raw->city     : '';
-  $province = isset($vcard_raw->province) ? $vcard_raw->province : '';
-  $postal   = isset($vcard_raw->postal)   ? $vcard_raw->postal   : '';
-  $country  = isset($vcard_raw->country)  ? $vcard_raw->country  : '';
-  $vcard->addAddress('', '', $street, $city, $province, $postal, $country);
+  // Work telephone
+  if (isset($vcard_raw->work_telephone)) {
+    $vcard->addTelephone($vcard_raw->work_telephone);
+    $vcard->addParam('ENCODING', '8BIT');
+    $vcard->addParam('TYPE', 'work');
+    $vcard->addParam('ENCODING', '8BIT');
+  }
+
+  // Home Address
+  $home_street   = isset($vcard_raw->home_street)   ? $vcard_raw->home_street   : '';
+  $home_city     = isset($vcard_raw->home_city)     ? $vcard_raw->home_city     : '';
+  $home_province = isset($vcard_raw->home_province) ? $vcard_raw->home_province : '';
+  $home_postal   = isset($vcard_raw->home_postal)   ? $vcard_raw->home_postal   : '';
+  $home_country  = isset($vcard_raw->home_country)  ? $vcard_raw->home_country  : '';
+  $vcard->addAddress('', '', $home_street, $home_city, $home_province, $home_postal, $home_country);
+  $vcard->addParam('ENCODING', '8BIT');
+  $vcard->addParam('TYPE', 'home');
+  $vcard->addParam('ENCODING', '8BIT');
+
+  // Work Address
+  $work_street   = isset($vcard_raw->work_street)   ? $vcard_raw->work_street   : '';
+  $work_city     = isset($vcard_raw->work_city)     ? $vcard_raw->work_city     : '';
+  $work_province = isset($vcard_raw->work_province) ? $vcard_raw->work_province : '';
+  $work_postal   = isset($vcard_raw->work_postal)   ? $vcard_raw->work_postal   : '';
+  $work_country  = isset($vcard_raw->work_country)  ? $vcard_raw->work_country  : '';
+  $vcard->addAddress('', '', $work_street, $work_city, $work_province, $work_postal, $work_country);
+  $vcard->addParam('ENCODING', '8BIT');
+  $vcard->addParam('TYPE', 'work');
   $vcard->addParam('ENCODING', '8BIT');
 
   // Geo coordinates
@@ -344,17 +380,25 @@
  */
 function _vcard_properties() {
   return array(
-    'givenname'     => t('Given Name'),
+    'fullname'       => t('Full name'),
+    'givenname'      => t('Given name'),
     'familyname'    => t('Family name'),
+    'job_title'      => t('Job Title'),
     'birthday'      => t('Birthday'),
     'organization'  => t('Organization'),
-    'telephone'     => t('Telephone'),
+    'home_telephone' => t('Home telephone'),
+    'work_telephone' => t('Work telephone'),
     'url'           => t('URL'),
-    'street'        => t('Street'),
-    'city'          => t('City'),
-    'postal'        => t('Postal'),
-    'province'      => t('Province'),
-    'country'       => t('Country'),
+    'home_street'    => t('Home Street'),
+    'home_city'      => t('Home City'),
+    'home_postal'    => t('Home Postal'),
+    'home_province'  => t('Home Province'),
+    'home_country'   => t('Home Country'),
+    'work_street'    => t('Work Street'),
+    'work_city'      => t('Work City'),
+    'work_postal'    => t('Work Postal'),
+    'work_province'  => t('Work Province'),
+    'work_country'   => t('Work Country'),
   );
 }
 
diff -rub a/vcard.tpl.php b/vcard.tpl.php
--- a/vcard.tpl.php	2011-01-19 03:51:17.000000000 -0500
+++ b/vcard.tpl.php	2012-11-09 12:17:47.000000000 -0500
@@ -11,17 +11,24 @@
  * - $show_title: A boolean to trigger the title
  * - $vcard: The raw vCard data
  *     Not sanitized, use check_plain() or similar
+ * - $fullname
  * - $givenname
  * - $familyname
  * - $birthday
  * - $organization
- * - $telephone
+ * - $work_telephone
+ * - $work_telephone
  * - $url
- * - $street
- * - $city
- * - $postal
- * - $province
- * - $country
+ * - $home_street
+ * - $home_city
+ * - $home_postal
+ * - $home_province
+ * - $home_country
+ * - $work_street
+ * - $work_city
+ * - $work_postal
+ * - $work_province
+ * - $work_country
  * - $picture
  *
  * @see template_preprocess()
@@ -39,7 +46,12 @@
     <?php print $user_picture ?>
   <?php endif; ?>
 
-  <?php if ($givenname && $familyname) : ?>
+  <?php if ($fullname) : ?>
+    <div class="n">
+      <span class="fn"><?php print $fullname ?></span>
+      <span class="nickname"><?php print check_plain($account->name) ?></span>
+    </div>
+  <?php else if ($givenname && $familyname) : ?>
     <div class="n fn">
       <span class="given-name"><?php print $givenname ?></span>
       <span class="family-name"><?php print $familyname ?></span>
@@ -53,33 +65,66 @@
     <a class="email" href="mailto:<?php print $mail ?>"><?php print $mail ?></a>
   <?php endif; ?>
 
-  <?php if ($street || $city || $province || $postal || $country ) : ?>
+  <?php if ($home_street || $home_city || $home_province || $_homepostal || $home_country ) : ?>
     <div class="adr">
 
-    <?php if ($street) : ?>
-      <div class="street-address"><?php print $street ?></div>
+    <?php if ($home_street) : ?>
+      <div class="street-address"><?php print $home_street ?></div>
     <?php endif; ?>
 
-    <?php if ($city) : ?>
-      <span class="locality"><?php print $city ?></span>
+    <?php if ($home_city) : ?>
+      <span class="locality"><?php print $home_city ?></span>
     <?php endif; ?>
 
-    <?php if ($province) : ?>
-      <span class="region"><?php print $province ?></span>
+    <?php if ($home_province) : ?>
+      <span class="region"><?php print $home_province ?></span>
     <?php endif; ?>
 
-    <?php if ($postal) : ?>
-      <span class="postal-code"><?php print $postal ?></span>
+    <?php if ($home_postal) : ?>
+      <span class="postal-code"><?php print $home_postal ?></span>
     <?php endif; ?>
 
-    <?php if ($country) : ?>
-      <span class="country-name"><?php  print $country  ?></span>
+    <?php if ($home_country) : ?>
+      <span class="country-name"><?php  print $home_country  ?></span>
     <?php endif; ?>
     </div>
   <?php endif; ?>
 
-  <?php if ($telephone) : ?>
-    <div class="tel"><?php print $telephone ?></div>
+  <?php if ($work_street || $work_city || $work_province || $_homepostal || $work_country ) : ?>
+    <div class="adr">
+
+    <?php if ($work_street) : ?>
+      <div class="street-address"><?php print $work_street ?></div>
+    <?php endif; ?>
+
+    <?php if ($work_city) : ?>
+      <span class="locality"><?php print $work_city ?></span>
+    <?php endif; ?>
+
+    <?php if ($work_province) : ?>
+      <span class="region"><?php print $work_province ?></span>
+    <?php endif; ?>
+
+    <?php if ($work_postal) : ?>
+      <span class="postal-code"><?php print $work_postal ?></span>
+    <?php endif; ?>
+
+    <?php if ($work_country) : ?>
+      <span class="country-name"><?php  print $work_country  ?></span>
+    <?php endif; ?>
+    </div>
+  <?php endif; ?>
+
+  <?php if ($home_telephone) : ?>
+    <div class="tel"><?php print $home_telephone ?></div>
+  <?php endif; ?>
+
+  <?php if ($work_telephone) : ?>
+    <div class="tel"><?php print $work_telephone ?></div>
+  <?php endif; ?>
+
+  <?php if ($job_title) : ?>
+    <div class="title"><?php print $job_title ?></div>
   <?php endif; ?>
 
   <?php if ($organization) : ?>
