diff --git a/src/lib/core/say.c b/src/lib/core/say.c
index 0b2cf2c34b322a9c0a915f7b0e27570ef7506bc3..64a637c5865f1c97ee4251a088478c10f7502332 100644
--- a/src/lib/core/say.c
+++ b/src/lib/core/say.c
@@ -759,10 +759,10 @@ say_format_plain_tail(char *buf, int len, int level, const char *filename,
 
 	if (level == S_WARN || level == S_ERROR || level == S_SYSERROR) {
 		/* Primitive basename(filename) */
-		for (const char *f = filename; *f; f++)
-			if (*f == '/' && *(f + 1) != '\0')
-				filename = f + 1;
 		if (filename) {
+			for (const char *f = filename; *f; f++)
+				if (*f == '/' && *(f + 1) != '\0')
+					filename = f + 1;
 			SNPRINT(total, snprintf, buf, len, " %s:%i", filename,
 				line);
 		}