diff --git a/test/ganeti.daemon_unittest.py b/test/ganeti.daemon_unittest.py
index e9f10bd2818cad37991c7311321c986c788b5790..7b0cfe50ad9f48c27b6a6fc58cb6692a52b83804 100755
--- a/test/ganeti.daemon_unittest.py
+++ b/test/ganeti.daemon_unittest.py
@@ -94,6 +94,24 @@ class TestMainloop(testutils.GanetiTestCase):
     self.assertEquals(self.sendsig_events, [signal.SIGCHLD, signal.SIGTERM])
     self.assertEquals(self.onsignal_events, self.sendsig_events)
 
+  def testReRun(self):
+    self.mainloop.RegisterSignal(self)
+    self.mainloop.scheduler.enter(0.1, 1, self._SendSig, [signal.SIGCHLD])
+    self.mainloop.scheduler.enter(0.2, 1, self._SendSig, [signal.SIGCHLD])
+    self.mainloop.scheduler.enter(0.3, 1, self._SendSig, [signal.SIGTERM])
+    self.mainloop.scheduler.enter(0.4, 1, self._SendSig, [signal.SIGCHLD])
+    self.mainloop.scheduler.enter(0.5, 1, self._SendSig, [signal.SIGCHLD])
+    self.mainloop.Run()
+    self.assertEquals(self.sendsig_events,
+                      [signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM])
+    self.assertEquals(self.onsignal_events, self.sendsig_events)
+    self.mainloop.scheduler.enter(0.3, 1, self._SendSig, [signal.SIGTERM])
+    self.mainloop.Run()
+    self.assertEquals(self.sendsig_events,
+                      [signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM,
+                       signal.SIGCHLD, signal.SIGCHLD, signal.SIGTERM])
+    self.assertEquals(self.onsignal_events, self.sendsig_events)
+
 
 class _MyAsyncUDPSocket(daemon.AsyncUDPSocket):