diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index c25929929a2e46fe840253dcc965b48f973d4a4e..a55e702875ade5d54066f5cb987193854dc34dc1 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -22,7 +22,7 @@
 #include "g_input.h"
 #include "m_menu.h"
 #include "r_local.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "p_local.h"
 #include "p_setup.h"
 #include "s_sound.h"
diff --git a/src/dehacked.c b/src/dehacked.c
index dea0289b9d720604d03658665f7cd6742b45b2b0..e6466f792cbfa13a85363e720ecd5c078240b195 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -31,6 +31,7 @@
 #include "r_data.h"
 #include "r_draw.h"
 #include "r_patch.h"
+#include "r_things.h" // R_Char2Frame
 #include "r_sky.h"
 #include "fastcmp.h"
 #include "lua_script.h"
diff --git a/src/f_wipe.c b/src/f_wipe.c
index 8d12262efb2d6377395ac06c7c6d37d2f6ed48a5..0fd6c1431c099877710e3e39ec74282cf7fb4b0e 100644
--- a/src/f_wipe.c
+++ b/src/f_wipe.c
@@ -16,6 +16,7 @@
 #include "i_video.h"
 #include "v_video.h"
 
+#include "r_state.h" // fadecolormap
 #include "r_draw.h" // transtable
 #include "p_pspr.h" // tr_transxxx
 #include "p_local.h"
diff --git a/src/g_game.c b/src/g_game.c
index 08192bfb8b82247a0f3c391fb97a143a32f5eb2b..1bf76f33fc8e06d1270d730dd9e8a69c791c78dd 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -38,7 +38,7 @@
 #include "byteptr.h"
 #include "i_joy.h"
 #include "r_local.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "y_inter.h"
 #include "v_video.h"
 #include "dehacked.h" // get_number (for ghost thok)
diff --git a/src/hardware/hw3sound.c b/src/hardware/hw3sound.c
index f7c6e1da025e1db33471bd8775bc6a8ff4c826a3..7858640c018ac1c15609e7b0387c182efaf868cb 100644
--- a/src/hardware/hw3sound.c
+++ b/src/hardware/hw3sound.c
@@ -28,7 +28,7 @@
 #include "../tables.h"
 #include "../sounds.h"
 #include "../r_main.h"
-#include "../r_things.h"
+#include "../r_skins.h"
 #include "../m_random.h"
 #include "../p_local.h"
 #include "hw3dsdrv.h"
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 03f14244614e73c2d9e35085f637424c41ed2d84..d001408be805b952c18cf94482fc52ee73393850 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -21,7 +21,7 @@
 #include "z_zone.h"
 #include "r_main.h"
 #include "r_draw.h"
-#include "r_things.h"
+#include "r_things.h" // R_Frame2Char etc
 #include "m_random.h"
 #include "s_sound.h"
 #include "g_game.h"
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index efed9adb7b7e61b2a230ceef184991e5de0d7051..92080e8eda16674593f9ea0f745c5370ce9b2e15 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -15,7 +15,7 @@
 #include "doomstat.h"
 #include "p_mobj.h"
 #include "g_game.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "b_bot.h"
 #include "z_zone.h"
 
diff --git a/src/lua_mobjlib.c b/src/lua_mobjlib.c
index a7bd8da940adb8d574e641b7651f68fb214d99de..9e46344cf5472780cbebda2d73eba51b31406ae3 100644
--- a/src/lua_mobjlib.c
+++ b/src/lua_mobjlib.c
@@ -13,7 +13,7 @@
 #include "doomdef.h"
 #ifdef HAVE_BLUA
 #include "fastcmp.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "p_local.h"
 #include "g_game.h"
 #include "p_setup.h"
diff --git a/src/lua_skinlib.c b/src/lua_skinlib.c
index 3ade06042efc9f2183c0c3107d9e795f67713a50..f26aed2f0fd82a8bb39d2a56cf36f1c58dc6df01 100644
--- a/src/lua_skinlib.c
+++ b/src/lua_skinlib.c
@@ -13,7 +13,7 @@
 #include "doomdef.h"
 #ifdef HAVE_BLUA
 #include "fastcmp.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "sounds.h"
 
 #include "lua_script.h"
diff --git a/src/m_cond.c b/src/m_cond.c
index 89058a488ae1833167caea247b60bc1391e62c15..0abc7adf88c7ace2907b69ea4c8277a500549b99 100644
--- a/src/m_cond.c
+++ b/src/m_cond.c
@@ -18,7 +18,7 @@
 #include "v_video.h" // video flags
 
 #include "g_game.h" // record info
-#include "r_things.h" // numskins
+#include "r_skins.h" // numskins
 #include "r_draw.h" // R_GetColorByName
 
 // Map triggers for linedef executors
diff --git a/src/m_menu.h b/src/m_menu.h
index 18b681ff034c5e4d949c0d0ae16fbe4b8ad58f64..e7270380d503a84c1beb8cfe6e3f4fd69fc5bdb1 100644
--- a/src/m_menu.h
+++ b/src/m_menu.h
@@ -15,9 +15,10 @@
 #ifndef __X_MENU__
 #define __X_MENU__
 
+#include "doomstat.h" // for NUMGAMETYPES
 #include "d_event.h"
 #include "command.h"
-#include "r_things.h" // for SKINNAMESIZE
+#include "r_skins.h" // for SKINNAMESIZE
 #include "f_finale.h" // for ttmode_enum
 
 //
diff --git a/src/p_enemy.c b/src/p_enemy.c
index 5d067ebc3c24f0af29b4bda036ea14c103a99b18..14e5c4d3e5050a00e21ff6e7453ca76824a99e8f 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -21,7 +21,7 @@
 #include "s_sound.h"
 #include "m_random.h"
 #include "m_misc.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "i_video.h"
 #include "z_zone.h"
 #include "lua_hook.h"
diff --git a/src/p_mobj.c b/src/p_mobj.c
index faee245d3b9e2f63e39eeedda617d20134c7ddd5..9194cf9f7e2dfbbf2b14e8e32f7f66348cfb2bb9 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -19,7 +19,7 @@
 #include "p_local.h"
 #include "p_setup.h"
 #include "r_main.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "r_sky.h"
 #include "r_splats.h"
 #include "s_sound.h"
diff --git a/src/p_saveg.c b/src/p_saveg.c
index e8c6c7a84d0f2654cbfe19d60f9174e30ed7976a..2cd4bbbef38facb99310ba2266d117f4110421fd 100644
--- a/src/p_saveg.c
+++ b/src/p_saveg.c
@@ -22,7 +22,7 @@
 #include "p_setup.h"
 #include "p_saveg.h"
 #include "r_data.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "r_state.h"
 #include "w_wad.h"
 #include "y_inter.h"
diff --git a/src/p_setup.c b/src/p_setup.c
index 7b4c6773b07a0bef06905839fbfc62317744881a..857bb1d43a70c21e163c8092a4feeca06c49ce62 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -27,7 +27,7 @@
 #include "i_system.h"
 
 #include "r_data.h"
-#include "r_things.h"
+#include "r_things.h" // for R_AddSpriteDefs
 #include "r_patch.h"
 #include "r_sky.h"
 #include "r_draw.h"
diff --git a/src/p_spec.c b/src/p_spec.c
index d9bbab246ea4b8327666e0695f14776aa2ba86b8..aecdb3b98f75583a2bb7492442085645f4517720 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -36,7 +36,7 @@
 #include "m_cond.h" //unlock triggers
 #include "lua_hook.h" // LUAh_LinedefExecute
 #include "f_finale.h" // control text prompt
-#include "r_things.h" // skins
+#include "r_skins.h" // skins
 
 #ifdef HW3SOUND
 #include "hardware/hw3sound.h"
diff --git a/src/p_user.c b/src/p_user.c
index 9167d5345049324b83d41f813e0d619b1443bc99..c34d37264a9a0b4a7655d32740b6d7bb8a7ea2b5 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -22,7 +22,7 @@
 #include "p_local.h"
 #include "r_main.h"
 #include "s_sound.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "d_think.h"
 #include "r_sky.h"
 #include "p_setup.h"
diff --git a/src/r_skins.h b/src/r_skins.h
index 4b83966acbf7ea14d3ee2aec54c1022e386d830f..96697b4220038c1bdbe491cbd4943b2b4127113b 100644
--- a/src/r_skins.h
+++ b/src/r_skins.h
@@ -16,6 +16,7 @@
 
 #include "info.h"
 #include "sounds.h"
+#include "d_player.h" // skinflags
 #include "r_patch.h" // spriteinfo_t
 #include "r_defs.h" // spritedef_t
 
diff --git a/src/s_sound.c b/src/s_sound.c
index 8193fdb9b948a7fe0b7aa9fedb53e9b77f0cd516..8e9461d785b9eecef326d4238494230791425211 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -27,7 +27,7 @@ extern INT32 msg_id;
 #include "g_game.h"
 #include "m_argv.h"
 #include "r_main.h" // R_PointToAngle2() used to calc stereo sep.
-#include "r_things.h" // for skins
+#include "r_skins.h" // for skins
 #include "i_system.h"
 #include "i_sound.h"
 #include "s_sound.h"
diff --git a/src/sounds.c b/src/sounds.c
index a9d720d5c44800ef5dddf0eb208ac3db3a918388..ca943c2d06f0fd9d86e0a3616a86c84b857f65e3 100644
--- a/src/sounds.c
+++ b/src/sounds.c
@@ -15,7 +15,7 @@
 #include "i_sound.h"
 #include "sounds.h"
 #include "r_defs.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "z_zone.h"
 #include "w_wad.h"
 #include "lua_script.h"
diff --git a/src/y_inter.c b/src/y_inter.c
index 36cb64d0625de2b1d3862cf85bcd0fcf6cbbe486..6f23ef1b1f6fa1f983f064ef1abc11154702f274 100644
--- a/src/y_inter.c
+++ b/src/y_inter.c
@@ -19,7 +19,7 @@
 #include "i_video.h"
 #include "p_tick.h"
 #include "r_defs.h"
-#include "r_things.h"
+#include "r_skins.h"
 #include "s_sound.h"
 #include "st_stuff.h"
 #include "v_video.h"