diff -urp userpoints-orig/contrib/userpoints_email/userpoints_email.module userpoints/contrib/userpoints_email/userpoints_email.module
--- userpoints-orig/contrib/userpoints_email/userpoints_email.module	2007-06-29 23:54:50.000000000 +0200
+++ userpoints/contrib/userpoints_email/userpoints_email.module	2007-08-13 16:04:12.000000000 +0200
@@ -75,11 +75,10 @@ function _userpoints_email_process($uid 
     $user = user_load(array('uid' => $uid));
 
     $from = variable_get('site_mail', ini_get('sendmail_from'));
-    $headers = "From: $from\nReply-to: $from\nX-Mailer: Drupal\nReturn-path: $from\nErrors-to: $from";
 
     drupal_mail('userpoints_email',
       $user->mail, $subject, t(variable_get(USERPOINTS_EMAIL_TEXT, USERPOINTS_EMAIL_TEXT_DEFAULT),
       array('!username' => $user->name, '!points' => $current_points)),
-      $headers);
+      $from);
   }
 }
diff -urp userpoints-orig/contrib/userpoints_transaction_tools/userpoints_transaction_tools.module userpoints/contrib/userpoints_transaction_tools/userpoints_transaction_tools.module
--- userpoints-orig/contrib/userpoints_transaction_tools/userpoints_transaction_tools.module	2007-06-26 04:43:59.000000000 +0200
+++ userpoints/contrib/userpoints_transaction_tools/userpoints_transaction_tools.module	2007-08-14 13:59:49.000000000 +0200
@@ -11,21 +11,37 @@ function userpoints_transaction_tools_he
 }
 
 function userpoints_transaction_tools_menu($may_cache) {
+  global $user;
   $items = array();
-  if (!$may_cache) {
+  
+  if($may_cache) {
+    if ($user->uid) {
+      $items[] = array(
+        'path' => 'userpoints/myuserpoints/' . $user->uid,
+        'callback arguments' => array(arg(2)),
+        'title' => t('My points'),
+        'callback' => 'userpoints_transaction_tools_my_userpoints',
+        'access' => user_access('use userpoints'),
+        'type' => MENU_DYNAMIC_ITEM
+      );
+    }
+  }
+  else {
     $items[] = array(
-      'path' => 'userpoints/myuserpoints',
-      'title' => t('My') . ' ' . t('!Points', userpoints_translation()),
+      'path' => 'userpoints/myuserpoints/' . arg(2),
+      'callback arguments' => array(arg(2)),
+      'title' => t('My points'),
       'callback' => 'userpoints_transaction_tools_my_userpoints',
       'access' => user_access('use userpoints'),
-      'type' => MENU_NORMAL_ITEM
+      'type' => MENU_CALLBACK
     );
+
     $items[] = array(
-          'path'     => 'userpoints',
-	  'callback' => 'userpoints_transaction_tools_list_users',
-	  'title'    => t('Users by !points', userpoints_translation()),
-	  'access'   => user_access(USERPOINTS_PERM_VIEW),
-	  'type'     => MENU_NORMAL_ITEM,
+      'path'     => 'userpoints',
+  	  'callback' => 'userpoints_transaction_tools_list_users',
+  	  'title'    => t('Users by !points', userpoints_translation()),
+  	  'access'   => user_access(USERPOINTS_PERM_VIEW),
+  	  'type'     => MENU_NORMAL_ITEM,
     );
   }
 
@@ -58,14 +74,13 @@ function userpoints_transaction_tools_li
 
 }
 
-function userpoints_transaction_tools_my_userpoints() {
+function userpoints_transaction_tools_my_userpoints($uid = 0) {
   $overall_total = 0;
   $unapproved_total = 0;
   $approved_total = 0;
 
   global $user;
   //First which user are we displaying? 
-  $uid = db_escape_string(arg(2));
   $point_user = user_load(array('uid'=> $uid));
   if ($point_user && user_access(USERPOINTS_PERM_VIEW)) { 
      $title = t('!Points for ',userpoints_translation()). $point_user->name;
@@ -87,7 +102,6 @@ function userpoints_transaction_tools_my
 
   $header = array(
     array('data' => t('!Points', userpoints_translation()), 'field' => 'points'),
     array('data' => t('Approved?'), 'field' => 'status'),
     array('data' => t('Date'), 'field' => 'time_stamp', 'sort' => 'desc'),
     array('data' => t('Event'), 'field' => 'event'),
     array('data' => t('Description'), 'field' => 'description'),
@@ -111,8 +125,7 @@ function userpoints_transaction_tools_my
       }
       $rows[] = array(
           array('data' => $row->points, 'align' => 'center'),
           array('data' => $status, 'align' => 'center'),
           array('data' => format_date($row->time_stamp, 'small'), 'align' => 'center'),
           array('data' => $row->event),
           array('data' => $description),
       );
@@ -135,8 +148,6 @@ function userpoints_transaction_tools_my
 function theme_userpoints_transaction_tools_my_userpoints($args, $header, $rows) {
   $output  = theme('table', $header, $rows);
   $output .= '<p><strong>' . t('Overall Total !points', userpoints_translation()) . ':</strong> ' . $args['overall_total'] . '<br />';
   $output .= '<strong>' . t('Unapproved !points', userpoints_translation()) . ':</strong> ' . $args['unapproved_total'] . '</p>';
   $output .= '<p><strong>' . t('Net !points Balance', userpoints_translation()) . ':</strong> ' . $args['approved_total'] . '</p>';
   $output .= theme('pager', NULL, 10, 0);
 
   return $output;
diff -urp userpoints-orig/userpoints.module userpoints/userpoints.module
--- userpoints-orig/userpoints.module	2007-07-02 18:50:04.000000000 +0200
+++ userpoints/userpoints.module	2007-08-13 15:47:50.000000000 +0200
@@ -494,6 +494,16 @@ function userpoints_admin_txn() {
     '#description'   => t('Date and time of this transaction, in the form YYYY-MM-DD HH:MM +ZZZZ'),
     );  
 
+  $form['event'] = array(
+      '#type'  => 'textfield',
+      '#title' => t('Event'),
+      '#description' => t('Event'),
+      '#default_value' => $txn->event,
+      '#size'          => 20,
+      '#maxlength'     => 20,
+      '#description'   => t('The event type for this transaction. Normally, it is "admin".'),
+    );
+
   $form['description'] = array(
     '#type'          => 'textarea',
     '#title'         => t('Description'),
@@ -519,11 +529,6 @@ function userpoints_admin_txn() {
         '#value' => $user->uid,
         );
 
-      $form['event'] = array(
-        '#type'  => 'hidden',
-        '#value' => 'admin',
-        );
-
       $form['status'] = array(
         '#type'  => 'hidden',
         '#value' => USERPOINTS_TXN_STATUS_PENDING,
@@ -550,15 +555,6 @@ function userpoints_admin_txn() {
        '#description'   => t('The user ID of the person who approved this transaction. 0 means not yet approved.'),
        );
 
-      $form['event'] = array(
-        '#type'  => 'textfield',
-        '#description' => t('Event'),
-        '#default_value' => $txn->event,
-        '#size'          => 20,
-        '#maxlength'     => 20,
-        '#description'   => t('The event type for this transaction. Normally, it is "admin".'),
-        );
-
       $form['status'] = array(
         '#title' => t('Approval status'),
         '#type' => 'radios', 
@@ -590,7 +586,7 @@ function userpoints_admin_txn_submit($fo
   $txn_user = user_load(array('name' => $form['txn_user']));
   switch($form['mode']) {
     case 'add':
-      userpoints_userpointsapi('points', $form['points'], $txn_user->uid, 'admin', $form['description'], $form['reference']);
+      userpoints_userpointsapi('points', $form['points'], $txn_user->uid, $form['event'], $form['description'], $form['reference']);
       break;
       
     case 'edit':
