diff --git a/src/lib-sieve/sieve-validator.c b/src/lib-sieve/sieve-validator.c
index b298ed76f82e958eb506ba9abd2f220e3613c837..a8ab04f4bed88efaa4749ed3843c8a72908b3c65 100644
--- a/src/lib-sieve/sieve-validator.c
+++ b/src/lib-sieve/sieve-validator.c
@@ -649,10 +649,10 @@ bool sieve_validator_extension_load
 		return FALSE;
 
 	/* Link extension to AST for use at code generation */
-	sieve_ast_extension_link(valdtr->ast, ext, reg->required);
-
-	if ( reg != NULL )
+	if ( reg != NULL ) {
+		sieve_ast_extension_link(valdtr->ast, ext, reg->required);
 		reg->loaded = TRUE;
+	}
 
 	return TRUE;
 }