--- notify.module.orig	2007-07-14 20:54:19.000000000 -0700
+++ notify.module	2008-06-28 14:32:43.000000000 -0700
@@ -36,7 +36,7 @@
     604800      => format_interval(604800),
     1209600     => format_interval(1209600),
     2419200     => format_interval(2419200),
-    1000000000  => t('Never'),
+    -1	        => t('Never'),
   );
 
   $form = array();
@@ -49,6 +49,14 @@
     '#description' => t('How often should new content notifications be sent? Requires cron to be running.'),
   );
 
+  $form['notify_send_hour'] = array(
+    '#type' => 'select',
+    '#title' => t('Send notifications during this hour'),
+    '#default_value' => variable_get('notify_send_hour', date('G', variable_get('notify_send_last', 0))),
+    '#options' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23),
+    '#description' => t('Hour of the day to send noticiations, on 24 hour clock.'),
+  );
+
   $form['notify_attempts'] = array(
     '#type' => 'select',
     '#title' => t('Number of failed sends after which notifications are disabled'),
@@ -63,7 +71,13 @@
  * Implementation of hook_cron().
  */
 function notify_cron() {
-  if (time() - variable_get('notify_send_last', 0) > variable_get('notify_send', 86400)) {
+  $send_last = variable_get('notify_send_last', 0);
+  $send_interval = variable_get('notify_send', 86400);
+  $send_hour = variable_get('notify_send_hour', date('G', variable_get('notify_send_last', 0)));
+  if ( (time() - $send_last > $send_interval) 
+    && (date('G', time()) > $send_hour) 
+    && ($send_interval != -1) //special case of settings to send 'never' 
+      ) {
     _notify_send();
     variable_set('notify_send_last', time());
   }
