diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php
index fa574311164630cc933539b914e6ca71b5b6c6fa..77b355fe6eeb08a0754e6aaea912e49f9e054182 100644
--- a/server/lib/classes/cron.d/500-backup.inc.php
+++ b/server/lib/classes/cron.d/500-backup.inc.php
@@ -225,6 +225,11 @@ class cronjob_backup extends cronjob {
 				if(is_array($records)) {
 
 					include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf';
+					
+					//* Check mysqldump capabilities
+					exec('mysqldump --help',$tmp);
+					$mysqldump_routines = (strpos(implode($tmp),'--routines') !== false)?'--routines':'';
+					unset($tmp);
 
 					foreach($records as $rec) {
 
@@ -252,7 +257,7 @@ class cronjob_backup extends cronjob {
 							$db_name = $rec['database_name'];
 							$db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql';
 							//$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
-							$command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
+							$command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'";
 							exec($command, $tmp_output, $retval);
 
 							//* Compress the backup with gzip / pigz