diff --git a/vcardfield.install b/vcardfield.install
index 5f99b94..a691620 100644
--- a/vcardfield.install
+++ b/vcardfield.install
@@ -36,6 +36,12 @@ function vcardfield_field_schema($field) {
       'not null' => FALSE,
     );
 
+    $schema['columns']['photo'] = array(
+      'type' => 'varchar',
+      'length' => '255',
+      'not null' => FALSE,
+    );
+
     $schema['columns']['title'] = array(
       'type' => 'varchar',
       'length' => '100',
diff --git a/vcardfield.module b/vcardfield.module
index c0c2352..a3fba9e 100644
--- a/vcardfield.module
+++ b/vcardfield.module
@@ -165,6 +165,12 @@ function vcardfield_field_widget_form(&$form, &$form_state, $field, $instance, $
       '#maxlength' => 255,
       '#default_value' => isset($items[$delta]['full_name']) ? $items[$delta]['full_name'] : NULL,
     );
+    $element['photo'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Photo'),
+      '#maxlength' => 255,
+      '#default_value' => isset($items[$delta]['photo']) ? $items[$delta]['photo'] : NULL,
+    );
     $element['title'] = array(
       '#type' => 'textfield',
       '#title' => t('Title'),
@@ -297,6 +303,7 @@ function template_preprocess_vcardfield(&$variables) {
   $variables['last_name']     = check_plain($variables['last_name']);
   $variables['suffix']        = check_plain($variables['suffix']);
   $variables['full_name']     = check_plain($variables['full_name']);
+  $variables['photo']     = check_plain($variables['photo']);
   $variables['title']         = check_plain($variables['title']);
   $variables['organization']  = check_plain($variables['organization']);
   $variables['address_type']  = check_plain($variables['address_type']);
@@ -372,6 +379,11 @@ function vcardfield_create_vcard($field = '', $nid = 0, $delta = 0, $type = 'nod
   } else {
     $full_name = '';
   }
+  if ($vcard_field['photo'] != '') {
+    $photo = check_plain($vcard_field['photo']);
+  } else {
+    $photo = '';
+  }
   if ($vcard_field['email'] != '') {
     $email = check_plain($vcard_field['email']);
   } else {
@@ -453,6 +465,13 @@ function vcardfield_create_vcard($field = '', $nid = 0, $delta = 0, $type = 'nod
     $output .= "FN;CHARSET=utf-8:". $full_name;
     $output .= "\n";
   }
+  if ($photo != "") {
+    // Encode data to base64
+    $photolink = file_get_contents($photo);
+    $photodata = base64_encode($photolink);
+    $output .= "PHOTO;ENCODING=BASE64;TYPE=JPEG:". $photodata;
+    $output .= "\n";
+  }
   if ($email != "") {
     $output .= "EMAIL;TYPE=PREF,INTERNET:". $email;
     $output .= "\n";
@@ -492,4 +511,4 @@ function vcardfield_create_vcard($field = '', $nid = 0, $delta = 0, $type = 'nod
 
   //echo "</pre>";
 
- }
\ No newline at end of file
+ }
diff --git a/vcardfield.tpl.php b/vcardfield.tpl.php
index 97f16b6..88e809d 100644
--- a/vcardfield.tpl.php
+++ b/vcardfield.tpl.php
@@ -10,6 +10,7 @@
       $last_name
       $suffix
       $full_name
+      $photo
       $title
       $organization
       $address_type
