diff --git email.module email.module
index 719a1f6..43035ad 100644
--- email.module
+++ email.module
@@ -63,10 +63,15 @@ function email_field_formatter_info() {
       'field types' => array('email'),
     ),
     'email_contact' => array(
-      'label' => t('Email contact form'),
-      'description' => t('Display a contact form.'),
+      'label' => t('Email contact form link'),
+      'description' => t('Display a link to a contact form.'),
       'field types' => array('email'),
     ),
+	  'email_contact_form' => array(
+	    'label' => t('Email contact form'),
+	    'description' => t('Display a contact form.'),
+	    'field types' => array('email'),
+	  ),
     'email_plain' => array(
       'label' => t('Email plain text'),
       'description' => t('Display the email address as plain text.'),
@@ -93,22 +98,31 @@ function email_field_formatter_view($object_type, $object, $field, $instance, $l
     case 'email_default':
       foreach ($items as $delta => $item) {
         $output = l($item['email'], 'mailto:' . $item['email']);
-        $element[$delta] = array('#markup' => $output);
+        $element[$delta]['#markup'] = $output;
       }
       break;
 
     case 'email_contact':
       $ids = entity_extract_ids($object_type, $object);
       foreach ($items as $delta => $item) {
-        $element[$delta] = array('#markup' => l(t('Contact person by email'), 'email/' . $object_type . '/' . $ids[0] . '/' . $instance['field_name']));
+				$element[$delta]['#markup'] = l(t('Contact person by email'), 'email/' . $object_type . '/' . $ids[0] . '/' . $instance['field_name']);
         // Since email is always sent to first item's email, break after any email address found.
         break;
       }
       break;
-
+	
+		case 'email_contact_form':
+		  $ids = entity_extract_ids($object_type, $object);
+      foreach ($items as $delta => $item) {
+				$element[$delta] = email_mail_page($object_type, $ids[0], $instance['field_name']);
+        // Since email is always sent to first item's email, break after any email address found.
+        break;
+      }
+	  	break;
+	
     case 'email_plain':
       foreach ($items as $delta => $item) {
-        $element[$delta] = array('#markup' => check_plain($item['email']));
+        $element[$delta]['#markup'] = check_plain($item['email']);
       }
       break;
 
@@ -119,7 +133,7 @@ function email_field_formatter_view($object_type, $object, $field, $instance, $l
         }
         else {
           $output = l($item['email'], 'mailto:' . $item['email']);
-          $element[$delta] = array('#markup' => $output);
+          $element[$delta]['#markup'] = $output;
         }
       }
       break;
@@ -251,7 +265,7 @@ function email_mail_page($object_type, $object_id, $field_name) {
   $settings = field_info_instance($object_type, $field_name, $entity_info[2]);
   $found = FALSE;
   foreach ($settings['display'] as $display_name => $display_data) {
-    if (isset($display_data['type']) && ($display_data['type'] === 'email_contact')) {
+    if (isset($display_data['type']) && ($display_data['type'] === 'email_contact' || $display_data['type'] === 'email_contact_form')) {
       $found = TRUE;
       break;
     }

