Index: uspace/app/dplay/dplay.c
===================================================================
--- uspace/app/dplay/dplay.c	(revision 2809563269b45f2561c9eb7704deb4f5257b3ed5)
+++ uspace/app/dplay/dplay.c	(revision 7a5ab20d93d1f4901fe5d57f6f30573e18ce0208)
@@ -45,4 +45,5 @@
 
 #include <stdio.h>
+#include <macros.h>
 
 #include "wave.h"
@@ -78,10 +79,12 @@
 	while (true) {
 		tv_add(&time, interval); /* Next update point */
+
 		struct timeval current;
 		gettimeofday(&current, NULL);
 
-		const suseconds_t delay = tv_sub(&time, &current);
+		const suseconds_t delay = min(tv_sub(&time, &current), interval);
 		if (delay > 0)
 			usleep(delay);
+
 		const size_t bytes =
 		    fread(buffer_place, sizeof(uint8_t), half_buf, source);
