diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index c23b69edf98d165496658ac1b16b29b3fbc114c4..c4059e42c4ff49ad31495411a5ce9cc05691b28a 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1514,7 +1514,13 @@ class apache2_plugin {
 
 		//* If we have some alias records
 		if($server_alias) {
-			$tpl->setVar('alias', 'ServerAlias '.implode(' ',$server_alias));
+			//* begin a new ServerAlias line after 32 alias domains to avoid apache bugs
+			$server_alias_str = 'ServerAlias '.$server_alias[0];
+			for($n=1;$n<count($server_alias);++$n)
+				$server_alias_str .= ($n % 32?' ':"\nServerAlias ").$server_alias[$n];
+			$tpl->setVar('alias', $server_alias_str);
+			unset($server_alias_str);
+			unset($n);
 		} else {
 			$tpl->setVar('alias', '');
 		}