diff --git a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
index 6a033cc4c9a414455a1355209c52e14b9bc503e2..c0ce9237de880003a198197b9ae87ef28220196f 100644
--- a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
+++ b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
@@ -37,6 +37,8 @@ bool ext_imapflags_command_validate
 	arg2 = sieve_ast_argument_next(arg);
 	
 	if ( arg2 != NULL ) {
+		/* First check syntax sanity */
+				
 		if ( sieve_ast_argument_type(arg) != SAAT_STRING ) 
 		{
 			sieve_command_validate_error(validator, cmd, 
@@ -45,7 +47,7 @@ bool ext_imapflags_command_validate
 				cmd->command->identifier, sieve_ast_argument_name(arg));
 			return FALSE; 
 		}		
-
+		
 		if ( sieve_ast_argument_type(arg2) != SAAT_STRING && 
 			sieve_ast_argument_type(arg2) != SAAT_STRING_LIST ) 
 		{
@@ -56,7 +58,19 @@ bool ext_imapflags_command_validate
 				cmd->command->identifier, sieve_ast_argument_name(arg2));
 			return FALSE; 
 		}
-		//sieve_validator_argument_activate(validator, arg);
+		
+		/* Then check whether the second argument is permitted */
+		
+		/* IF !VARIABLE EXTENSION LOADED */
+		{
+			sieve_command_validate_error(validator, cmd, 
+				"the %s command only allows for the specification of a "
+				"variable name when the variables extension is active",
+				cmd->command->identifier);
+			return FALSE;
+		}
+
+		//sieve_validator_argument_activate(validator, arg2);
 	}	
 	return TRUE;
 }
diff --git a/src/lib-sieve/plugins/imapflags/imapflags.sieve b/src/lib-sieve/plugins/imapflags/imapflags.sieve
index 18d3d1a6d938d7d743bfcc3206aba1d57f866cab..28fc9f645ab0f002ff23bda7bf3ea25a6f565431 100644
--- a/src/lib-sieve/plugins/imapflags/imapflags.sieve
+++ b/src/lib-sieve/plugins/imapflags/imapflags.sieve
@@ -2,15 +2,15 @@ require "imapflags";
 require "fileinto";
 
 if header :contains "from" "boss@frobnitzm.example.edu" {
-	setflag "flagvar" "\\Flagged";
-#	fileinto :flags "${flagvar}" "INBOX.From Boss";
+	setflag "\\Flagged";
+	fileinto "INBOX.From Boss";
 }
 
 if header :contains "Disposition-Notification-To" "mel@example.com" {
-	addflag "flagvar" "$MDNRequired";
+	addflag "$MDNRequired";
 }
 
 if header :contains "from" "imap@cac.washington.example.edu" {
-	removeflag "flagvar" "$MDNRequired";
-#	fileinto :flags "${flagvar}" "INBOX.imap-list";
+	removeflag "$MDNRequired";
+	fileinto "INBOX.imap-list";
 }