--- a/urngd.c
+++ b/urngd.c
@@ -129,9 +129,14 @@ static size_t gather_entropy(struct urng
 static void low_entropy_cb(struct uloop_fd *ufd, unsigned int events)
 {
 	struct urngd *u = container_of(ufd, struct urngd, rnd_fd);
+	size_t res;
 
 	DEBUG(2, DEV_RANDOM " signals low entropy\n");
-	gather_entropy(u);
+	res = gather_entropy(u);
+	if (!res) {
+		DEBUG(2, "gather_entropy failed, delaying further attempts\n");
+		sleep(60);
+	}
 }
 
 static void urngd_done(struct urngd *u)
