diff -up contact_orig/contact.module contact_ref/contact.module
--- contact_orig/contact.module	2007-10-15 12:42:34.890625000 -0500
+++ contact_ref/contact.module	2007-10-20 01:46:17.359375000 -0500
@@ -165,7 +165,8 @@ function contact_mail($key, &$message, $
     case 'page_copy':
       $contact = $params['contact'];
       $message['subject'] .= t('[!category] !subject', array('!category' => $contact['category'], '!subject' => $params['subject']), $language->language);
-      $message['body'][] = t("!name sent a message using the contact form at !form.", array('!name' => $params['name'], '!form' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language))), $language->language);
+      $message['body'][] = t("!name sent a message using the contact form at !form.", array('!name' => $params['name'], '!form' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language))), $language->language)
+	    .($params['referrer']?t(" !name was linked by @referrer.",array('!name' => $params['name'],'@referrer' => $params['referrer'])):'');
       $message['body'][] = $params['message'];
       break;
     case 'page_autoreply':
@@ -179,7 +180,8 @@ function contact_mail($key, &$message, $
       $account = $params['account'];
       $message['subject'] .= '['. variable_get('site_name', 'Drupal') .'] '. $params['subject'];
       $message['body'][] = "$account->name,";
-      $message['body'][] = t("!name (!name-url) has sent you a message via your contact form (!form-url) at !site.", array('!name' => $user->name, '!name-url' => url("user/$user->uid", array('absolute' => TRUE, 'language' => $language)), '!form-url' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language)), '!site' => variable_get('site_name', 'Drupal')), $language->language);
+      $message['body'][] = t("!name (!name-url) has sent you a message via your contact form (!form-url) at !site.", array('!name' => $user->name, '!name-url' => url("user/$user->uid", array('absolute' => TRUE, 'language' => $language)), '!form-url' => url($_GET['q'], array('absolute' => TRUE, 'language' => $language)), '!site' => variable_get('site_name', 'Drupal')), $language->language)
+        .($params['referrer']?t(" !name was linked by @referrer.",array('!name' => $params['name'],'@referrer' => $params['referrer'])):'');
       $message['body'][] = t("If you don't want to receive such e-mails, you can change your settings at !url.", array('!url' => url("user/$account->uid", array('absolute' => TRUE, 'language' => $language))), $language->language);
       $message['body'][] = t('Message:', NULL, $language->language);
       $message['body'][] = $params['message'];
diff -up contact_orig/contact.pages.inc contact_ref/contact.pages.inc
--- contact_orig/contact.pages.inc	2007-10-15 12:42:19.171875000 -0500
+++ contact_ref/contact.pages.inc	2007-10-20 01:47:05.093750000 -0500
@@ -90,6 +90,9 @@ function contact_mail_page() {
     $form['submit'] = array('#type' => 'submit',
       '#value' => t('Send e-mail'),
     );
+	if($_SERVER['HTTP_REFERER'] && !sess_read('referrer') && arg(1) != 'contact') {
+      sess_write('referrer',$_SERVER['HTTP_REFERER']);
+    }
   }
   else {
     drupal_set_message(t('The contact form has not been configured. <a href="@add">Add one or more categories</a> to the form.', array('@add' => url('admin/build/contact/add'))), 'error');
@@ -124,6 +127,8 @@ function contact_mail_page_submit($form,
   // Load category properties and save form values for email composition.
   $contact = contact_load($values['cid']);
   $values['contact'] = $contact;
+  $values['referrer'] = sess_read('referrer');
+  sess_write('referrer', null);
 
   // Send the e-mail to the recipients using the site default language.
   drupal_mail('contact', 'page_mail', $contact['recipients'], language_default(), $values, $from);
@@ -195,6 +200,9 @@ function contact_mail_user(&$form_state,
   $form['submit'] = array('#type' => 'submit',
     '#value' => t('Send e-mail'),
   );
+  if($_SERVER['HTTP_REFERER'] && !sess_read('referrer') && arg(1) != 'contact') {
+    sess_write('referrer',$_SERVER['HTTP_REFERER']);
+  }
   return $form;
 }
 
@@ -214,6 +222,8 @@ function contact_mail_user_submit($form,
   $values = $form_state['values'];
   $values['account'] = $account;
   $values['user'] = $user;
+  $values['referrer'] = sess_read('referrer');
+  sess_write('referrer', null);
 
   // Send the e-mail in the requested user language.
   drupal_mail('contact', 'user_mail', $to, user_preferred_language($account), $values, $from);
