diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php
index 226fdfd983f6ad67778e6580ed904bc65abd98d5..35eae884b80daaa3d0cafa4d54d26fdd9295dc00 100644
--- a/server/plugins-available/maildeliver_plugin.inc.php
+++ b/server/plugins-available/maildeliver_plugin.inc.php
@@ -205,7 +205,12 @@ class maildeliver_plugin {
 
 			$tpl->setVar('addresses', $address_str);
 
+			if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) {
+				$app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']);
+			}
+
 			file_put_contents($sieve_file_isp, $tpl->grab());
+			chdir($data["new"]["maildir"]);
 			//* create symlink to activate sieve script
 			symlink("sieve/ispconfig.sieve", ".sieve")  or $app->log("Unable to create symlink to active sieve filter", LOGLEVEL_WARN);	
 			unset($tpl);