diff --git a/PHPDaemon/Thread/Worker.php b/PHPDaemon/Thread/Worker.php
index <HASH>..<HASH> 100644
--- a/PHPDaemon/Thread/Worker.php
+++ b/PHPDaemon/Thread/Worker.php
@@ -78,6 +78,12 @@ class Worker extends Generic {
 	public $state = 0;
 
 	/**
+	 * Request counter
+	 * @var integer
+	 */
+	public $reqCounter = 0;
+
+	/**
 	 * Break main loop?
 	 * @var boolean
 	 */
@@ -475,6 +481,15 @@ class Worker extends Generic {
 		}
 
 		if (
+			(Daemon::$config->maxrequests->value > 0)
+			&& ($this->reqCounter >= Daemon::$config->maxrequests->value)
+		) {
+			$this->log('\'max-requests\' exceed. Graceful shutdown.');
+
+			$this->initReload();
+		}
+
+		if (
 			Daemon::$config->maxidle->value
 			&& $this->timeLastActivity
 			&& ($time - $this->timeLastActivity > Daemon::$config->maxidle->value)
max-requests directive now works