diff --git a/ChangeLog b/ChangeLog
index 840f6c5a1..d08adc031 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2023-10-01  Bart Schaefer  <schaefer@zsh.org>
 
+	* 52195: Src/params.c: cached_username is already metafied when
+	initializing LOGNAME
+
 	* 52193: Src/init.c, Src/params.c, Src/utils.c: metafy USERNAME
 	(mostly for Cygwin compatibilty with UTF8 encodings)
 
diff --git a/Src/params.c b/Src/params.c
index 50e8627d1..957656e3f 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -850,12 +850,11 @@ createparamtable(void)
     setsparam("HOST", ztrdup_metafy(hostnam));
     zfree(hostnam, 256);
 
-    setsparam("LOGNAME", ztrdup_metafy(
+    setsparam("LOGNAME",
 #ifndef DISABLE_DYNAMIC_NSS
-			(str = getlogin()) && *str ?  str :
+	      (str = getlogin()) && *str ? ztrdup_metafy(str) :
 #endif
-				cached_username
-			));
+	      ztrdup(cached_username));
 
 #if !defined(HAVE_PUTENV) && !defined(USE_SET_UNSET_ENV)
     /* Copy the environment variables we are inheriting to dynamic *