diff --git a/src/lib-sieve/sieve-error.c b/src/lib-sieve/sieve-error.c
index 10771171e256269823c1ac9efc2b57ac538de01d..9f02da4c57e65d19a64f37546ded334add4521ae 100644
--- a/src/lib-sieve/sieve-error.c
+++ b/src/lib-sieve/sieve-error.c
@@ -35,7 +35,9 @@
 const char *sieve_error_script_location
 (const struct sieve_script *script, unsigned int source_line)
 {
-    const char *sname = sieve_script_name(script);
+    const char *sname;
+
+	sname = ( script == NULL ? NULL : sieve_script_name(script) );
 
     if ( sname == NULL || *sname == '\0' )
         return t_strdup_printf("line %d", source_line);