--- subscriptions.module.orig	2007-12-30 05:09:02.000000000 +0800
+++ subscriptions.module	2008-01-16 23:18:46.000000000 +0800
@@ -242,6 +242,7 @@
       }
     }
   }
+  subscriptions_mail_cron(5);
 }
 
 /**
--- subscriptions_mail.module.orig	2007-12-29 18:28:13.000000000 +0800
+++ subscriptions_mail.module	2008-01-17 01:07:28.000000000 +0800
@@ -1,9 +1,11 @@
 <?php
 // $Id: subscriptions_mail.module,v 1.1.2.5 2007/12/29 10:28:13 chx Exp $s
 
-function subscriptions_mail_cron() {
+function subscriptions_mail_cron($number_of_mails = null) {
   global $user;
-  $number_of_mails = variable_get('subscriptions_number_of_mails', 200);
+  if (!$number_of_mails) {
+    $number_of_mails = variable_get('subscriptions_number_of_mails', 200);
+  }
   $from = variable_get('site_mail', ini_get('sendmail_from'));
   $old_uid = 0;
   $counter = 0;
@@ -43,13 +45,27 @@
         $user = $users[$object->uid];
         $module = $s['module'];
         $field = $s['field'];
+        $node = null;
+        if ($module == 'node') {
+          $node = node_load($s['value']);
+          if ($node) {
+            $field = 'type';
+          }
+        }
         if (!isset($fields[$module])) {
           $fields[$module] = module_invoke_all('subscriptions', 'fields', $module);
         }
-        $mailvars_function = $fields[$module][$field]['mailvars_function'];
+        if ($node and $fields[$module][$field . '-' . $node->type]) {
+          $mailvars_function = $fields[$module][$field . '-' . $node->type]['mailvars_function'];
+        }
+        else {
+          $mailvars_function = $fields[$module]['nid']['mailvars_function'];
+        }
         $mailkey = 'subscriptions-'. $module .'-'. $field;
-        if (!is_numeric($s['value'])) {
-          $mailkey .= '-'. $s['value'];
+        if ($node) {
+          $mailkey .= '-' . $node->type;
+        } elseif (!is_numeric($s['value'])) {
+          $mailkey .= '-' . $s['value'];
         }
         if ($s['digest']) {
           $body_template = SUBSCRIPTIONS_DEFAULT_GROUP_ITEM_BODY;
--- subscriptions_content.module.orig	2008-01-10 00:08:57.000000000 +0800
+++ subscriptions_content.module	2008-01-17 00:28:00.000000000 +0800
@@ -332,7 +332,7 @@
       $mailvars['!term_name'] = db_result(db_query('SELECT name FROM {term_data} WHERE tid = %d', $s['value']));
       break;
     case 'type':
-      switch ($s['value']) {
+      switch ($node->type) {
         case 'forum':
           $mailvars['!term_name'] = db_result(db_query('SELECT name FROM {term_data} WHERE tid = %d', $node->tid));
           break;
