--- subscriptions.module.orig	2009-09-15 11:27:55.000000000 -0700
+++ subscriptions.module	2009-09-15 11:47:11.000000000 -0700
@@ -51,7 +51,7 @@ function subscriptions_menu() {
     'description' => 'Enables site settings for user subscriptions.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('subscriptions_settings_form'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer subscriptions'),
   );
   $items['admin/settings/subscriptions/settings'] = array(
     'title' => 'Site settings',
@@ -64,7 +64,7 @@ function subscriptions_menu() {
     'page callback' => 'subscriptions_page_user_overview',
     'page arguments' => array(NULL),
     'type' => MENU_LOCAL_TASK,
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer subscriptions'),
   );
   $items['admin/settings/subscriptions/userdefaults/settings'] = array(
     'type' => MENU_DEFAULT_LOCAL_TASK,
@@ -76,7 +76,7 @@ function subscriptions_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('subscriptions_intervals'),
     'type' => MENU_LOCAL_TASK,
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer subscriptions'),
   );
   $items['user/%user/subscriptions'] = array(
     'title' => 'Subscriptions',
@@ -157,7 +157,7 @@ function subscriptions_menu() {
       'file' => 'subscriptions.admin.inc',
       'page callback' => 'subscriptions_page',
       'page arguments' => array(NULL, $stype),
-      'access arguments' => array('administer site configuration'),
+      'access arguments' => array('administer subscriptions'),
       'weight' => $weight,
     );
   }
@@ -210,7 +210,8 @@ function _subscriptions_access($account,
  * @ingroup hooks
  */
 function subscriptions_perm() {
-  return array_merge(array('administer user subscriptions', 'subscribe to all content types'), subscriptions_types('access'));
+  return array_merge(array('administer subscriptions', 'administer user subscriptions', 'subscribe to all content types'), subscriptions_types('access'));
+  t('administer subscriptions');
   t('administer user subscriptions');
   t('subscribe to all content types');
 }
@@ -256,7 +257,7 @@ function subscriptions_write($access_key
   // Access checking
   $recipient_uid = isset($recipient) ? $recipient : $user->uid;
   $access = subscriptions_types('access', $access_key);
-  if ($recipient_uid && $access && ($recipient_uid == $user->uid && user_access($access) || user_access('administer user subscriptions')) || $recipient_uid == 0 && user_access('administer site configuration')) {
+  if ($recipient_uid && $access && ($recipient_uid == $user->uid && user_access($access) || user_access('administer user subscriptions')) || $recipient_uid == 0 && user_access('administer subscriptions')) {
     subscriptions_write_subscription($module, $field, $value, $author_uid, $recipient_uid, $send_interval, $send_updates, $send_comments);
   }
 }
