Index: control.c
===================================================================
--- control.c	(revision 374)
+++ control.c	(working copy)
@@ -461,13 +461,14 @@
 static void wait_start(Service_T s) {
   int            isrunning = FALSE;
   time_t         timeout = time(NULL) + s->start->timeout;
+  struct timespec       delay = {0, 5 * 1000 * 1000L}; /* 5 milliseconds */
   
   ASSERT(s);
 
   while ((time(NULL) < timeout) && !Run.stopped) {
     if ((isrunning = Util_isProcessRunning(s, TRUE)))
       break;
-    sleep(1);
+    nanosleep(&delay, NULL);
   }
   
   if (! isrunning)
@@ -489,13 +490,14 @@
 static int wait_stop(Service_T s) {
   int            isrunning = TRUE;
   time_t         timeout = time(NULL) + s->stop->timeout;
+  struct timespec       delay = {0, 5 * 1000 * 1000L}; /* 5 milliseconds */
   
   ASSERT(s);
 
   while ((time(NULL) < timeout) && !Run.stopped) {
     if (! (isrunning = Util_isProcessRunning(s, TRUE)))
       break;
-    sleep(1);
+    nanosleep(&delay, NULL);
   }
 
   if (isrunning) {
