Index: modules/contact/contact.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact/contact.pages.inc,v
retrieving revision 1.11
diff -u -p -r1.11 contact.pages.inc
--- modules/contact/contact.pages.inc	16 Jul 2008 21:59:26 -0000	1.11
+++ modules/contact/contact.pages.inc	5 Sep 2008 13:15:28 -0000
@@ -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)) && !user_access('administer site-wide contact form')) {
     $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 : '';
@@ -60,7 +64,7 @@ function contact_mail_page() {
       // If there is more than one category available and no default category has been selected,
       // prepend a default placeholder value.
       if (!isset($default_category)) {
-        $default_category = t('- Please choose -');
+        $default_category = '<'. t('Please choose') .'>';
         $categories = array($default_category) + $categories;
       }
       $form['cid'] = array('#type' => 'select',
