--- horde5.1/kronolith/lib/Event.php.orig	2014-02-19 22:27:02.516569398 +0100
+++ horde5.1/kronolith/lib/Event.php	2014-02-19 22:37:23.644896111 +0100
@@ -891,14 +891,22 @@
                 $vEvent->addComponent($vAlarm);
             }
             $hordeAlarm = $GLOBALS['injector']->getInstance('Horde_Alarm');
-            if ($hordeAlarm->exists($this->uid, $GLOBALS['registry']->getAuth()) &&
-                $hordeAlarm->isSnoozed($this->uid, $GLOBALS['registry']->getAuth())) {
+	    $alarm_now = new Horde_Date(time());
+	    $alarm_now->setTimezone('UTC');
+	    $alarm_end = new Horde_Date($this->end);
+	    $alarm_end->setTimezone('UTC');
+            if ($alarm_end->before($alarm_now) ||
+	        ($hordeAlarm->exists($this->uid, $GLOBALS['registry']->getAuth()) &&
+                $hordeAlarm->isSnoozed($this->uid, $GLOBALS['registry']->getAuth()))) {
                 $vEvent->setAttribute('X-MOZ-LASTACK', new Horde_Date($_SERVER['REQUEST_TIME']));
-                $alarm = $hordeAlarm->get($this->uid, $GLOBALS['registry']->getAuth());
-                if (!empty($alarm['snooze'])) {
-                    $alarm['snooze']->setTimezone(date_default_timezone_get());
-                    $vEvent->setAttribute('X-MOZ-SNOOZE-TIME', $alarm['snooze']);
-                }
+
+		if ($hordeAlarm->exists($this->uid, $GLOBALS['registry']->getAuth())) {
+                   $alarm = $hordeAlarm->get($this->uid, $GLOBALS['registry']->getAuth());
+                   if (!empty($alarm['snooze'])) {
+                      $alarm['snooze']->setTimezone(date_default_timezone_get());
+                      $vEvent->setAttribute('X-MOZ-SNOOZE-TIME', $alarm['snooze']);
+                   }
+		}
             }
         }