diff --git a/src/r_things.c b/src/r_things.c
index c3a7ac2719c2100bc94bc18885393211a64a276f..942f6b66eb591c34acc0793251a35461525eef70 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -2666,6 +2666,27 @@ void R_AddSkins(UINT16 wadnum)
 			GETFLOAT(camerascale)
 #undef GETFLOAT
 
+#define GETFLAG(field, flag) else if (!stricmp(stoken, #field)) { \
+	if (atoi(value) == 1) \
+		skin->flags |= flag; \
+	else \
+		skin->flags &= ~flag; \
+}
+			// parameters for individual character flags
+			GETFLAG(super,         SF_SUPER)
+			GETFLAG(superanims,    SF_SUPERANIMS)
+			GETFLAG(superspin,     SF_SUPERSPIN)
+			GETFLAG(hires,         SF_HIRES)
+			GETFLAG(noskid,        SF_NOSKID)
+			GETFLAG(nospeedadjust, SF_NOSPEEDADJUST)
+			GETFLAG(runonwater,    SF_RUNONWATER)
+			GETFLAG(nojumpspin,    SF_NOJUMPSPIN)
+			GETFLAG(nojumpdamage,  SF_NOJUMPDAMAGE)
+			GETFLAG(stompdamage,   SF_STOMPDAMAGE)
+			GETFLAG(mariodamage,   SF_MARIODAMAGE)
+			GETFLAG(machine,       SF_MACHINE)
+#undef GETFLAG
+
 			else // let's check if it's a sound, otherwise error out
 			{
 				boolean found = false;