diff --git a/src/r_things.c b/src/r_things.c
index 2f8e7c91a94b3161208ea31783149f45a1db7943..d71a7e7a19c62d0f92441308e876031fa0255082 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -2811,14 +2811,20 @@ void R_AddSkins(UINT16 wadnum)
 				{
 					STRBUFCPY(skin->realname, skin->name);
 					for (value = skin->realname; *value; value++)
+					{
 						if (*value == '_') *value = ' '; // turn _ into spaces.
+						else if (*value == '.') *value = '\x1E'; // turn . into katana dot.
+					}
 				}
 				if (!hudname)
 				{
 					HUDNAMEWRITE(skin->name);
 					strupr(skin->hudname);
 					for (value = skin->hudname; *value; value++)
+					{
 						if (*value == '_') *value = ' '; // turn _ into spaces.
+						else if (*value == '.') *value = '\x1E'; // turn . into katana dot.
+					}
 				}
 			}
 			else if (!stricmp(stoken, "realname"))
@@ -2826,7 +2832,10 @@ void R_AddSkins(UINT16 wadnum)
 				realname = true;
 				STRBUFCPY(skin->realname, value);
 				for (value = skin->realname; *value; value++)
+				{
 					if (*value == '_') *value = ' '; // turn _ into spaces.
+					else if (*value == '.') *value = '\x1E'; // turn . into katana dot.
+				}
 				if (!hudname)
 					HUDNAMEWRITE(skin->realname);
 			}
@@ -2835,7 +2844,10 @@ void R_AddSkins(UINT16 wadnum)
 				hudname = true;
 				HUDNAMEWRITE(value);
 				for (value = skin->hudname; *value; value++)
+				{
 					if (*value == '_') *value = ' '; // turn _ into spaces.
+					else if (*value == '.') *value = '\x1E'; // turn . into katana dot.
+				}
 				if (!realname)
 					STRBUFCPY(skin->realname, skin->hudname);
 			}