diff --git a/src/lib-sieve/sieve-match.c b/src/lib-sieve/sieve-match.c
index 1ebe018b824fc5f3ba2bbbd5544e2a131267d011..816da07d5aeab7790207e819babb127ef0f051df 100644
--- a/src/lib-sieve/sieve-match.c
+++ b/src/lib-sieve/sieve-match.c
@@ -65,7 +65,7 @@ int sieve_match_value
 		{	
 			int ret;
 			
-			if ( mctx->kextract != NULL ) {
+			if ( mctx->kextract != NULL && mtch->allow_key_extract ) {
 				const struct sieve_match_key_extractor *kext = mctx->kextract;
 				void *kctx;