diff --git a/src/lib-sieve/storage/file/sieve-file-storage.c b/src/lib-sieve/storage/file/sieve-file-storage.c
index f4033e9a73b460fd90034bfc78f103590757a333..7405947f6c1fe06a399359c3d36f7f249b484b1a 100644
--- a/src/lib-sieve/storage/file/sieve-file-storage.c
+++ b/src/lib-sieve/storage/file/sieve-file-storage.c
@@ -333,13 +333,20 @@ static int sieve_file_storage_init_common
 		}
 
 		if (t_realpath(active_dir, &active_dir) < 0) {
-			sieve_storage_sys_error(storage,
-				"Failed to normalize active script directory (path=%s): %m",
-				active_dir);
-			*error_r = SIEVE_ERROR_TEMP_FAILURE;
-			return -1;
+			if (errno != ENOENT) {
+				sieve_storage_sys_error(storage,
+					"Failed to normalize active script directory (path=%s): %m",
+					active_dir);
+				*error_r = SIEVE_ERROR_TEMP_FAILURE;
+				return -1;
+			} 
+			sieve_storage_sys_debug(storage,
+				"Failed to normalize active script directory (path=%s): "
+				"Part of the path does not exist (yet)",
+				active_dir);			
+		} else {
+			active_path = t_abspath_to(active_fname, active_dir);
 		}
-		active_path = t_abspath_to(active_fname, active_dir);
 
 		sieve_storage_sys_debug(storage,
 			"Using %sSieve script path: %s",