diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
index bbbfa9d..c4f326f 100644
--- a/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
+++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
@@ -1618,6 +1618,23 @@ class rcube_sieve_engine
. (in_array_nocase($flag, $flags_target) ? 'checked="checked"' : '') . ' />'
. rcube::Q($this->plugin->gettext('flag'.$fidx)) .'
';
}
+
+ // collecting labels from message_label plugin. Note: I am using my own version of message_label plugin that stores the flags in clear text
+ // see https://github.com/tpokorra/message_label/tree/message_label_tbits
+ $flag_message_label = "";
+ foreach ($flags_target as $flag) {
+ if (in_array_nocase($flag, array_values($flags)) === false) {
+ $flag_message_label = $flag;
+ }
+ }
+ $prefs = $this->rc->config->get('message_label', array());
+ $out .= '';
+
$out .= '';
// set variable
diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php
index 371b45d..8ef494f 100644
--- a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php
+++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php
@@ -379,6 +379,12 @@ class rcube_sieve_script
case 'setflag':
case 'removeflag':
array_push($exts, $imapflags);
+
+ if (array_search("no_message_label", $action['target']) !== false) {
+ // if the user does not want to store the message label anymore
+ unset($action['target'][array_search("no_message_label", $action['target'])]);
+ }
+
$action_script .= $action['type'].' '
. self::escape_string($action['target']);
break;