diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php
index c31aa671123271f59ddfd689a9ff64e3df6ddbee..a403b91cf4c36cca295c500bc26a2e26ce86d476 100644
--- a/server/mods-available/web_module.inc.php
+++ b/server/mods-available/web_module.inc.php
@@ -217,6 +217,11 @@ class web_module {
 		} else {
 			exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']);
 		}
+		
+		// nginx: do a syntax check because on some distributions, the init script always returns 0 - even if the syntax is not ok (how stupid is that?)
+		if($web_config['server_type'] == 'nginx' && $retval['retval'] == 0 && is_executable('/usr/sbin/nginx')){
+			exec('/usr/sbin/nginx -t 2>&1', $retval['output'], $retval['retval']);
+		}
 		return $retval;
 	}