diff --git a/src/lib-sieve/ext-envelope.c b/src/lib-sieve/ext-envelope.c
index 8c5ebdc6025c0e9ac261807d1cb6769eb7517b2d..cdcda8d32e3eca785a8dd4b2083d0033bb2de4e1 100644
--- a/src/lib-sieve/ext-envelope.c
+++ b/src/lib-sieve/ext-envelope.c
@@ -466,8 +466,11 @@ static int ext_envelope_operation_execute
 							ret = sieve_match_value(mctx, "", 0);
 						} else {
 							const char *part = addrp->extract_from(addresses[i]);
+
 							if ( part != NULL ) 
 								ret = sieve_match_value(mctx, part, strlen(part));
+							else
+								ret = 0;
 						}
 
 						if ( ret < 0 ) {