diff -urN ../roundcubemail-1.5.2.orig/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php ./plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php --- ../roundcubemail-1.5.2.orig/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php 2021-12-30 00:29:23.000000000 +0200 +++ ./plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php 2022-02-07 19:36:06.105851000 +0200 @@ -3396,6 +3396,19 @@ } // update original forward rule/script else { + if ((!isset($rule['after'])) or ($rule['after'] == '')) { + $i = 0; + while ( + (isset($this->script[$i]['actions'][0]['type'])) and + ($this->script[$i]['actions'][0]['type'] == 'include') and + (isset($this->script[$i]['actions'][0]['global'])) and + ($this->script[$i]['actions'][0]['global']) + ) { + $i++; + } + if ($i > 0) $rule['after'] = $i - 1; + } + // re-order rules if needed if (isset($rule['after']) && $rule['after'] !== '') { // unset the original rule diff -urN ../roundcubemail-1.5.2.orig/plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php ./plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php --- ../roundcubemail-1.5.2.orig/plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php 2021-12-30 00:29:23.000000000 +0200 +++ ./plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php 2022-02-07 19:36:06.106751000 +0200 @@ -76,7 +76,7 @@ $this->script_name = $script; return 0; } - else if (empty($master) && $rule['actions'][0]['type'] == 'include') { + else if (empty($master) && ($rule['actions'][0]['type'] == 'include') && (!$rule['actions'][0]['global'])) { $included[] = $rule['actions'][0]['target']; } }