diff --git a/userpoints.module b/userpoints.module
index 451030f..d8a17a0 100644
--- a/userpoints.module
+++ b/userpoints.module
@@ -7,6 +7,7 @@ define('USERPOINTS_PERM_VIEW_OWN',       'view own userpoints');
 //The permission(PERM_USE) was removed from use as per #158490 it'll remain
 //out until code exists to use the permission (jredding 12/26/2007)
 define('USERPOINTS_PERM_USE',            'use userpoints');
+define('USERPOINTS_PERM_VIEW_TRANS',     'view all userpoints transactions');
 define('USERPOINTS_PERM_ADMIN',          'administer userpoints');
 
 define('USERPOINTS_TRANS_UCPOINTS',      'userpoints_trans_ucpoints');
@@ -187,7 +188,7 @@ function userpoints_menu() {
 function userpoints_access_my_points($account = NULL) {
   global $user;
   if ($account && $user->uid != $account->uid) {
-    return user_access(USERPOINTS_PERM_ADMIN);
+    return (user_access(USERPOINTS_PERM_ADMIN) || user_access(USERPOINTS_PERM_VIEW_TRANS));
   }
   return (user_access(USERPOINTS_PERM_VIEW) && user_is_logged_in()) || user_access(USERPOINTS_PERM_VIEW_OWN);
 }
@@ -204,7 +205,7 @@ function userpoints_list_my_userpoints_forward() {
  * Implementation of hook_perm().
  */
 function userpoints_perm() {
-  return array(USERPOINTS_PERM_VIEW, USERPOINTS_PERM_VIEW_OWN, USERPOINTS_PERM_ADMIN);
+  return array(USERPOINTS_PERM_VIEW, USERPOINTS_PERM_VIEW_OWN, USERPOINTS_PERM_VIEW_TRANS, USERPOINTS_PERM_ADMIN);
 }
 
 /**
