diff -up contact_orig/contact.pages.inc contact_categ/contact.pages.inc
--- contact_orig/contact.pages.inc	2007-10-15 12:42:19.171875000 -0500
+++ contact_categ/contact.pages.inc	2007-10-15 14:22:35.406250000 -0500
@@ -10,14 +10,14 @@
 /**
  * Site-wide contact page.
  */
-function contact_site_page() {
+function contact_site_page($arg_category = NULL) {
   global $user;
 
   if (!flood_is_allowed('contact', variable_get('contact_hourly_threshold', 3))) {
     $output = t("You cannot send more than %number messages per hour. Please try again later.", array('%number' => variable_get('contact_hourly_threshold', 3)));
   }
   else {
-    $output = drupal_get_form('contact_mail_page');
+    $output = drupal_get_form('contact_mail_page',$arg_category);
   }
 
   return $output;
@@ -35,6 +35,10 @@ function contact_mail_page() {
       $default_category = $category->cid;
     }
   }
+  $arg_category = func_get_arg(1);
+  if(arg(1) && in_array($arg_category, $categories)) {
+    $default_category = array_search($arg_category, $categories);
+  }
 
   if (count($categories) > 0) {
     $form['#token'] = $user->uid ? $user->name . $user->mail : '';
