server: Fixed handling of a relative start time for a timer.
diff --git a/server/timer.c b/server/timer.c
index ffa4b03..05c0e81 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -164,8 +164,7 @@
         period = 0;  /* period doesn't make any sense for a manual timer */
         timer->signaled = 0;
     }
-    if (expire > 0 && expire < current_time) expire = current_time;
-    timer->when     = expire;
+    timer->when     = (expire <= 0) ? current_time - expire : max( expire, current_time );
     timer->period   = period;
     timer->callback = callback;
     timer->arg      = arg;