diff --git a/src/sdl/i_main.c b/src/sdl/i_main.c
index 71b38841a1da8f3330f1a3c6f383dbf75f17ca1c..70f5826764c30e7377fd0d1a7087ec91b85f5533 100644
--- a/src/sdl/i_main.c
+++ b/src/sdl/i_main.c
@@ -158,10 +158,6 @@ int main(int argc, char **argv)
 		if (fileabs)
 		{
 			strftime(logfile, sizeof logfile, format, timeinfo);
-
-			M_MkdirEachUntil(logfile,
-					M_PathParts(logdir) - 1,
-					M_PathParts(logfile) - 1, 0755);
 		}
 		else
 		{
@@ -190,11 +186,13 @@ int main(int argc, char **argv)
 			}
 #endif/*LOGMESSAGES*/
 
-			M_MkdirEach(logfile, M_PathParts(logdir) - 1, 0755);
-
 			strftime(&logfile[left], sizeof logfile - left, format, timeinfo);
 		}
 
+		M_MkdirEachUntil(logfile,
+				M_PathParts(logdir) - 1,
+				M_PathParts(logfile) - 1, 0755);
+
 		logstream = fopen(logfile, "wt");
 	}