diff --git a/src/plugins/jobacct/linux/jobacct_linux.c b/src/plugins/jobacct/linux/jobacct_linux.c
index 414280da2a4a3cbbebdb5dca542c28ec40c3402d..ac8410191575295235b8f178bd10bca4f6040b82 100644
--- a/src/plugins/jobacct/linux/jobacct_linux.c
+++ b/src/plugins/jobacct/linux/jobacct_linux.c
@@ -593,11 +593,16 @@ static int _get_process_data_line(FILE *in, prec_t *prec) {
 
 static void *_watch_tasks(void *arg)
 {
+	int rem;
+
 	while(!jobacct_shutdown) {  /* Do this until shutdown is requested */
 		if(!suspended) {
 			_get_process_data();	/* Update the data */ 
 		}
-		sleep(freq);
+
+		rem = freq;
+		while (rem)		/* subject to interupt */
+			sleep(rem);
 	} 
 	return NULL;
 }