Index: notifications_tags/notifications_tags.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/notifications/notifications_tags/notifications_tags.module,v
retrieving revision 1.1.2.5.2.5
diff -u -p -r1.1.2.5.2.5 notifications_tags.module
--- notifications_tags/notifications_tags.module	7 Nov 2008 17:27:30 -0000	1.1.2.5.2.5
+++ notifications_tags/notifications_tags.module	18 Mar 2009 22:08:46 -0000
@@ -66,6 +66,24 @@ function notifications_tags_notification
         }
       }
       break;
+    case 'node options':
+      return _notifications_tags_node_options($arg0, $arg1);
+    case 'access': 
+      $type = $arg0;
+      $object = &$arg2;
+      $access = TRUE;
+      if ($type == 'subscription') {
+        $access = TRUE;
+        if (!empty($object->fields['tid'])) {
+          $term = taxonomy_get_term($object->fields['tid']);
+          $allowed_vocabs = notifications_tags_vocabularies(TRUE);
+          if (!array_key_exists($term->vid, $allowed_vocabs)) {
+            $access = FALSE;
+          }
+        }
+      }
+      return array($access);      
+      break;
   }
 }
 
@@ -246,4 +264,21 @@ function notifications_tags_node_get_ter
     }
   }
   return $terms[$nid];
+}
+
+/**
+ * Provide tag subscriptions on nodes.
+ */
+function _notifications_tags_node_options($account, $node) {
+  $options = array();
+  if (count($node->taxonomy)) {
+    foreach($node->taxonomy as $tid => $term) {
+      $options[] = array(
+        'name' => t('Posts tagged with %name', array('%name' => $term->name)),
+        'type' => 'taxonomy',
+        'fields' => array('tid' => $tid),
+      );
+    }
+  }
+  return $options;
 }
\ No newline at end of file
Index: notifications_ui/notifications_ui.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/notifications/notifications_ui/notifications_ui.module,v
retrieving revision 1.3.2.8.2.8
diff -u -p -r1.3.2.8.2.8 notifications_ui.module
--- notifications_ui/notifications_ui.module	23 Sep 2008 16:43:57 -0000	1.3.2.8.2.8
+++ notifications_ui/notifications_ui.module	18 Mar 2009 22:08:46 -0000
@@ -140,7 +140,7 @@ function notifications_ui_node_form($for
     $number = 0; // Number of subscriptions
     foreach ($node_options as $option) {
       $options[$index] = $option['name'];
-      // Check wether user is subscribed
+      // Check whether user is subscribed
       if (!empty($option['subscription'])) {
         $params[$index] = (array)$option['subscription'];
         $defaults[] = $index;
@@ -287,7 +287,11 @@ function notifications_ui_user_node($acc
   foreach ($allowed_options as $index => $option) {
     foreach ($subscriptions as $sub) {
       if ($sub->type == $option['type'] && !array_diff_key($option['fields'], $sub->fields)) {
-        $allowed_options[$index]['subscription'] = $sub;
+        foreach ($option['fields'] as $key => $field) {
+          if ($field == $sub->fields[$key]) {
+            $allowed_options[$index]['subscription'] = $sub;
+          }
+        }       
       }        
     }
   }
