diff --git a/src/Makefile b/src/Makefile
index 7fe7f8990f47912111da8214d8371be346c1262a..1968e995b8f028769ed32280536fe36a9f84f651 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -207,6 +207,7 @@ objdir:=$(makedir)/objs
 sources+=\
 	$(call List,Sourcefile)\
 	$(call List,blua/Sourcefile)\
+	$(call List,netcode/Sourcefile)\
 
 depends:=$(basename $(filter %.c %.s,$(sources)))
 objects:=$(basename $(filter %.c %.s %.nas,$(sources)))
diff --git a/src/Sourcefile b/src/Sourcefile
index c55752b095de762cacfa7407de3f8b650d818757..004673367789ed8173ed16610ad2415e12e26d36 100644
--- a/src/Sourcefile
+++ b/src/Sourcefile
@@ -1,9 +1,5 @@
 string.c
 d_main.c
-d_clisrv.c
-d_net.c
-d_netfil.c
-d_netcmd.c
 dehacked.c
 deh_soc.c
 deh_lua.c
@@ -77,9 +73,6 @@ s_sound.c
 sounds.c
 w_wad.c
 filesrch.c
-mserv.c
-http-mserv.c
-i_tcp.c
 lzf.c
 vid_copy.s
 b_bot.c
diff --git a/src/android/i_net.c b/src/android/i_net.c
index f6e642022e4a54360d68004f69d61eaa5e3acb19..4c30dc767a04615b75e6badf68d3603bc475a575 100644
--- a/src/android/i_net.c
+++ b/src/android/i_net.c
@@ -1,4 +1,4 @@
-#include "../i_net.h"
+#include "../netcode/i_net.h"
 
 boolean I_InitNetwork(void)
 {
diff --git a/src/blua/liolib.c b/src/blua/liolib.c
index 545f9c144c3ba798c96609e4bcb0e6ca22f1f79e..00e31e965e8ae8f7652d712a2a67d0b9411ed11b 100644
--- a/src/blua/liolib.c
+++ b/src/blua/liolib.c
@@ -19,7 +19,7 @@
 #include "lualib.h"
 #include "../i_system.h"
 #include "../g_game.h"
-#include "../d_netfil.h"
+#include "../netcode/d_netfil.h"
 #include "../lua_libs.h"
 #include "../byteptr.h"
 #include "../lua_script.h"
diff --git a/src/command.c b/src/command.c
index e1a43522da9946fe73b10efcf4f250008318fb50..0256365f38ec9f627050d8cfa35f980c1a83ee1f 100644
--- a/src/command.c
+++ b/src/command.c
@@ -28,11 +28,11 @@
 #include "byteptr.h"
 #include "p_saveg.h"
 #include "g_game.h" // for player_names
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "hu_stuff.h"
 #include "p_setup.h"
 #include "lua_script.h"
-#include "d_netfil.h" // findfile
+#include "netcode/d_netfil.h" // findfile
 #include "r_data.h" // Color_cons_t
 #include "d_main.h" // D_IsPathAllowed
 
diff --git a/src/d_main.c b/src/d_main.c
index b7b7f6616db7d89372eeeb03e6d23b5a6e87a684..a4238c8b19cc21a6b41fefb4818265bf99091b83 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -34,7 +34,7 @@
 #include "doomdef.h"
 #include "am_map.h"
 #include "console.h"
-#include "d_net.h"
+#include "netcode/d_net.h"
 #include "f_finale.h"
 #include "g_game.h"
 #include "hu_stuff.h"
@@ -56,11 +56,11 @@
 #include "w_wad.h"
 #include "z_zone.h"
 #include "d_main.h"
-#include "d_netfil.h"
+#include "netcode/d_netfil.h"
 #include "m_cheat.h"
 #include "y_inter.h"
 #include "p_local.h" // chasecam
-#include "mserv.h" // ms_RoomId
+#include "netcode/mserv.h" // ms_RoomId
 #include "m_misc.h" // screenshot functionality
 #include "deh_tables.h" // Dehacked list test
 #include "m_cond.h" // condition initialization
diff --git a/src/deh_soc.c b/src/deh_soc.c
index 2193cd875cd00898c035c0d47d030f189045572c..59eb0a9bd93e12e86f78a251408f401698ebc724 100644
--- a/src/deh_soc.c
+++ b/src/deh_soc.c
@@ -34,7 +34,7 @@
 #include "r_sky.h"
 #include "fastcmp.h"
 #include "lua_script.h" // Reluctantly included for LUA_EvalMath
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 
 #ifdef HWRENDER
 #include "hardware/hw_light.h"
diff --git a/src/deh_soc.h b/src/deh_soc.h
index 0cab545f680d6ec86d6e4707b53c2a16291439ba..029390133761c597c88cefb679cc847f8ce5e520 100644
--- a/src/deh_soc.h
+++ b/src/deh_soc.h
@@ -35,7 +35,7 @@
 #include "r_sky.h"
 #include "fastcmp.h"
 #include "lua_script.h" // Reluctantly included for LUA_EvalMath
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 
 #ifdef HWRENDER
 #include "hardware/hw_light.h"
diff --git a/src/doomstat.h b/src/doomstat.h
index a812cc304f6e0b19cab8f2fecf37868264ed9b16..27889726e8f7123af7095607d06b25ce7925917f 100644
--- a/src/doomstat.h
+++ b/src/doomstat.h
@@ -633,7 +633,7 @@ extern boolean singletics;
 // Netgame stuff
 // =============
 
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 
 extern consvar_t cv_timetic; // display high resolution timer
 extern consvar_t cv_powerupdisplay; // display powerups
diff --git a/src/dummy/i_net.c b/src/dummy/i_net.c
index f6e642022e4a54360d68004f69d61eaa5e3acb19..4c30dc767a04615b75e6badf68d3603bc475a575 100644
--- a/src/dummy/i_net.c
+++ b/src/dummy/i_net.c
@@ -1,4 +1,4 @@
-#include "../i_net.h"
+#include "../netcode/i_net.h"
 
 boolean I_InitNetwork(void)
 {
diff --git a/src/f_finale.c b/src/f_finale.c
index d03795dc437c69af5f12177755f3e48af643fcad..82c2a4f96d9055ddbea608ee85059d3beccb3887 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -14,7 +14,7 @@
 #include "doomdef.h"
 #include "doomstat.h"
 #include "d_main.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "f_finale.h"
 #include "g_game.h"
 #include "hu_stuff.h"
diff --git a/src/filesrch.c b/src/filesrch.c
index 9ee64f5ba658752e40a57c9ff0c0d2302ed85ecf..313f286e1f29dad11f8b6e5ec29d9fa39a4613ae 100644
--- a/src/filesrch.c
+++ b/src/filesrch.c
@@ -26,7 +26,7 @@
 #include <string.h>
 
 #include "filesrch.h"
-#include "d_netfil.h"
+#include "netcode/d_netfil.h"
 #include "m_misc.h"
 #include "z_zone.h"
 #include "m_menu.h" // Addons_option_Onchange
diff --git a/src/filesrch.h b/src/filesrch.h
index 59ef5269b194f0918a14927a6fc1eaf003e1a40b..a934c48d61bc9cfa4e31f550c2001bd582908e31 100644
--- a/src/filesrch.h
+++ b/src/filesrch.h
@@ -5,7 +5,7 @@
 #define __FILESRCH_H__
 
 #include "doomdef.h"
-#include "d_netfil.h"
+#include "netcode/d_netfil.h"
 #include "m_menu.h" // MAXSTRINGLENGTH
 #include "w_wad.h"
 
diff --git a/src/g_demo.c b/src/g_demo.c
index adb8e891d6de6dfc56fd8219d040939d3069f6eb..dea80e7930bd6ecb4281f114375305a6770412cd 100644
--- a/src/g_demo.c
+++ b/src/g_demo.c
@@ -15,7 +15,7 @@
 #include "console.h"
 #include "d_main.h"
 #include "d_player.h"
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 #include "p_setup.h"
 #include "i_time.h"
 #include "i_system.h"
diff --git a/src/g_game.c b/src/g_game.c
index b8c43499850cd49ca39fd6498b37a4d91b95c8ed..f47aa21835fb5c375875a64928ec1db87e1e08fa 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -15,7 +15,7 @@
 #include "console.h"
 #include "d_main.h"
 #include "d_player.h"
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 #include "f_finale.h"
 #include "p_setup.h"
 #include "p_saveg.h"
diff --git a/src/g_input.c b/src/g_input.c
index 826dcecbdf22b6ff833fce6e65bfb71ef051d05d..fa30c1984f6bcd02e9befaad37631b2be04849d2 100644
--- a/src/g_input.c
+++ b/src/g_input.c
@@ -16,7 +16,7 @@
 #include "g_input.h"
 #include "keys.h"
 #include "hu_stuff.h" // need HUFONT start & end
-#include "d_net.h"
+#include "netcode/d_net.h"
 #include "console.h"
 
 #define MAXMOUSESENSITIVITY 100 // sensitivity steps
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 36ff86abd7d0770351234913b03d837e2086b62d..b14a168a17138e4beba2cf4e9750027c560bd1f8 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -29,7 +29,7 @@
 #include "../r_patch.h"
 #include "../r_picformats.h"
 #include "../r_bsp.h"
-#include "../d_clisrv.h"
+#include "../netcode/d_clisrv.h"
 #include "../w_wad.h"
 #include "../z_zone.h"
 #include "../r_splats.h"
diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index c423f2905376be9287b2aa2b37b6475a6e40a6a5..33ef8a404a3c6241139b1bcb5f6bef1a86e112e6 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -19,7 +19,7 @@
 #include "m_cond.h" // emblems
 #include "m_misc.h" // word jumping
 
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 
 #include "g_game.h"
 #include "g_input.h"
diff --git a/src/i_time.c b/src/i_time.c
index 2a22503f1b8b5c70a8145d2c45696aa2c50f0922..fae26abede3f646252abd7c04ff826bbf89ae2ba 100644
--- a/src/i_time.c
+++ b/src/i_time.c
@@ -17,7 +17,7 @@
 
 #include "command.h"
 #include "doomtype.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "m_fixed.h"
 #include "i_system.h"
 
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index bf3fd1decc370d738ba8ff0195b893b9a39eca98..42e37e55e946225ecbfa49b03c97c29abb524420 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -26,11 +26,11 @@
 #include "y_inter.h"
 #include "hu_stuff.h"	// HU_AddChatText
 #include "console.h"
-#include "d_netcmd.h" // IsPlayerAdmin
+#include "netcode/d_netcmd.h" // IsPlayerAdmin
 #include "m_menu.h" // Player Setup menu color stuff
 #include "m_misc.h" // M_MapNumber
 #include "b_bot.h" // B_UpdateBotleader
-#include "d_clisrv.h" // CL_RemovePlayer
+#include "netcode/d_clisrv.h" // CL_RemovePlayer
 #include "i_system.h" // I_GetPreciseTime, I_GetPrecisePrecision
 
 #include "lua_script.h"
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index 039a9677f421dad1ffc4fac29a2335c88c866afa..0fc25ee6c9927b96e893a3fc1a0be9470b8f4938 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -24,7 +24,7 @@
 #include "lua_hud.h" // hud_running errors
 
 #include "m_perfstats.h"
-#include "d_netcmd.h" // for cv_perfstats
+#include "netcode/d_netcmd.h" // for cv_perfstats
 #include "i_system.h" // I_GetPreciseTime
 
 /* =========================================================================
diff --git a/src/lua_script.c b/src/lua_script.c
index a8263ea5fe040272530bae660c1c3bee882164d9..ed5adbe3fdcdc978af9dce7781457a92c1330e10 100644
--- a/src/lua_script.c
+++ b/src/lua_script.c
@@ -28,7 +28,7 @@
 #include "p_slopes.h" // for P_SlopeById and slopelist
 #include "p_polyobj.h" // polyobj_t, PolyObjects
 #ifdef LUA_ALLOW_BYTECODE
-#include "d_netfil.h" // for LUA_DumpFile
+#include "netcode/d_netfil.h" // for LUA_DumpFile
 #endif
 
 #include "lua_script.h"
diff --git a/src/m_cheat.c b/src/m_cheat.c
index e370335f8332d65fd7f5824270f99a81d9ba7a4b..69b3b643c30b507a5881053ebd4c1e5f356101ae 100644
--- a/src/m_cheat.c
+++ b/src/m_cheat.c
@@ -19,7 +19,7 @@
 #include "r_local.h"
 #include "p_local.h"
 #include "p_setup.h"
-#include "d_net.h"
+#include "netcode/d_net.h"
 
 #include "m_cheat.h"
 #include "m_menu.h"
diff --git a/src/m_menu.c b/src/m_menu.c
index 3e1d30feb3278927cb63e00273392720418df040..72e50de6968865d299f2187dbbde0fcf363c049a 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -20,7 +20,7 @@
 
 #include "doomdef.h"
 #include "d_main.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "console.h"
 #include "r_fps.h"
 #include "r_local.h"
@@ -53,8 +53,8 @@
 #include "hardware/hw_main.h"
 #endif
 
-#include "d_net.h"
-#include "mserv.h"
+#include "netcode/d_net.h"
+#include "netcode/mserv.h"
 #include "m_misc.h"
 #include "m_anigif.h"
 #include "byteptr.h"
diff --git a/src/m_menu.h b/src/m_menu.h
index e91b910137b38ad4270024a4ff861a9548d6da5e..b8fe3b808928b81c86bf3c09731e557f4b113616 100644
--- a/src/m_menu.h
+++ b/src/m_menu.h
@@ -20,7 +20,7 @@
 #include "command.h"
 #include "f_finale.h" // for ttmode_enum
 #include "i_threads.h"
-#include "mserv.h"
+#include "netcode/mserv.h"
 #include "r_things.h" // for SKINNAMESIZE
 
 // Compatibility with old-style named NiGHTS replay files.
diff --git a/src/m_perfstats.c b/src/m_perfstats.c
index 17e026b3e181714acee6ff4ca7887a1b199f1b77..1511859324059a5ce8e5836ff99dbdbe841c02a1 100644
--- a/src/m_perfstats.c
+++ b/src/m_perfstats.c
@@ -12,7 +12,7 @@
 #include "m_perfstats.h"
 #include "v_video.h"
 #include "i_video.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "r_main.h"
 #include "i_system.h"
 #include "z_zone.h"
diff --git a/src/netcode/Sourcefile b/src/netcode/Sourcefile
new file mode 100644
index 0000000000000000000000000000000000000000..9087917d0443548ed36d4162b6c60393b70b6f80
--- /dev/null
+++ b/src/netcode/Sourcefile
@@ -0,0 +1,7 @@
+d_clisrv.c
+d_net.c
+d_netcmd.c
+d_netfil.c
+http-mserv.c
+i_tcp.c
+mserv.c
diff --git a/src/d_clisrv.c b/src/netcode/d_clisrv.c
old mode 100755
new mode 100644
similarity index 99%
rename from src/d_clisrv.c
rename to src/netcode/d_clisrv.c
index cb1ccd5398f27470687d8ee182014d07e9b3bbd3..9b11e23ff02d49d920836e4fce6534ac9917f7ee
--- a/src/d_clisrv.c
+++ b/src/netcode/d_clisrv.c
@@ -15,48 +15,48 @@
 #include <unistd.h> //for unlink
 #endif
 
-#include "i_time.h"
+#include "../i_time.h"
 #include "i_net.h"
-#include "i_system.h"
-#include "i_video.h"
+#include "../i_system.h"
+#include "../i_video.h"
 #include "d_net.h"
-#include "d_main.h"
-#include "g_game.h"
-#include "st_stuff.h"
-#include "hu_stuff.h"
-#include "keys.h"
-#include "g_input.h"
-#include "i_gamepad.h"
-#include "m_menu.h"
-#include "console.h"
+#include "../d_main.h"
+#include "../g_game.h"
+#include "../st_stuff.h"
+#include "../hu_stuff.h"
+#include "../keys.h"
+#include "../g_input.h"
+#include "../i_gamepad.h"
+#include "../m_menu.h"
+#include "../console.h"
 #include "d_netfil.h"
-#include "byteptr.h"
-#include "p_saveg.h"
-#include "z_zone.h"
-#include "p_local.h"
-#include "p_haptic.h"
-#include "m_misc.h"
-#include "am_map.h"
-#include "m_random.h"
+#include "../byteptr.h"
+#include "../p_saveg.h"
+#include "../z_zone.h"
+#include "../p_local.h"
+#include "../p_haptic.h"
+#include "../m_misc.h"
+#include "../am_map.h"
+#include "../m_random.h"
 #include "mserv.h"
-#include "y_inter.h"
-#include "r_local.h"
-#include "m_argv.h"
-#include "p_setup.h"
-#include "lzf.h"
-#include "lua_script.h"
-#include "lua_hook.h"
-#include "lua_libs.h"
-#include "md5.h"
-#include "m_perfstats.h"
+#include "../y_inter.h"
+#include "../r_local.h"
+#include "../m_argv.h"
+#include "../p_setup.h"
+#include "../lzf.h"
+#include "../lua_script.h"
+#include "../lua_hook.h"
+#include "../lua_libs.h"
+#include "../md5.h"
+#include "../m_perfstats.h"
 
 // aaaaaa
-#include "i_gamepad.h"
+#include "../i_gamepad.h"
 
 // cl loading screen
-#include "v_video.h"
-#include "f_finale.h"
-#include "snake.h"
+#include "../v_video.h"
+#include "../f_finale.h"
+#include "../snake.h"
 
 //
 // NETWORKING
diff --git a/src/d_clisrv.h b/src/netcode/d_clisrv.h
similarity index 99%
rename from src/d_clisrv.h
rename to src/netcode/d_clisrv.h
index 0d6add13a3eb8f91941fea9114de591821eb7b12..50b86e9f01700c45849f50b492b947014238ace1 100644
--- a/src/d_clisrv.h
+++ b/src/netcode/d_clisrv.h
@@ -13,12 +13,12 @@
 #ifndef __D_CLISRV__
 #define __D_CLISRV__
 
-#include "d_ticcmd.h"
+#include "../d_ticcmd.h"
 #include "d_net.h"
 #include "d_netcmd.h"
 #include "d_net.h"
-#include "tables.h"
-#include "d_player.h"
+#include "../tables.h"
+#include "../d_player.h"
 #include "mserv.h"
 
 /*
diff --git a/src/d_net.c b/src/netcode/d_net.c
similarity index 99%
rename from src/d_net.c
rename to src/netcode/d_net.c
index 9e3759d32ce4abbf31649737e230939d56ad630a..ae0605001ac5f4e119901d7e92993e345c62ee6b 100644
--- a/src/d_net.c
+++ b/src/netcode/d_net.c
@@ -16,19 +16,19 @@
 ///        This protocol uses a mix of "goback n" and "selective repeat" implementation
 ///        The NOTHING packet is sent when connection is idle to acknowledge packets
 
-#include "doomdef.h"
-#include "g_game.h"
-#include "i_time.h"
+#include "../doomdef.h"
+#include "../g_game.h"
+#include "../i_time.h"
 #include "i_net.h"
-#include "i_system.h"
-#include "m_argv.h"
+#include "../i_system.h"
+#include "../m_argv.h"
 #include "d_net.h"
-#include "w_wad.h"
+#include "../w_wad.h"
 #include "d_netfil.h"
 #include "d_clisrv.h"
-#include "z_zone.h"
+#include "../z_zone.h"
 #include "i_tcp.h"
-#include "d_main.h" // srb2home
+#include "../d_main.h" // srb2home
 
 //
 // NETWORKING
diff --git a/src/d_net.h b/src/netcode/d_net.h
similarity index 100%
rename from src/d_net.h
rename to src/netcode/d_net.h
diff --git a/src/d_netcmd.c b/src/netcode/d_netcmd.c
similarity index 99%
rename from src/d_netcmd.c
rename to src/netcode/d_netcmd.c
index 69eed90de9f20fd2d1f8863922d013546a038642..ed310805dc9b596a601be887a73144a449b6a2d4 100644
--- a/src/d_netcmd.c
+++ b/src/netcode/d_netcmd.c
@@ -12,44 +12,44 @@
 ///        commands are executed through the command buffer
 ///	       like console commands, other miscellaneous commands (at the end)
 
-#include "doomdef.h"
-
-#include "console.h"
-#include "command.h"
-#include "i_time.h"
-#include "i_system.h"
-#include "g_game.h"
-#include "hu_stuff.h"
-#include "g_input.h"
-#include "i_gamepad.h"
-#include "m_menu.h"
-#include "r_local.h"
-#include "r_skins.h"
-#include "p_local.h"
-#include "p_setup.h"
-#include "s_sound.h"
-#include "i_sound.h"
-#include "m_misc.h"
-#include "am_map.h"
-#include "byteptr.h"
+#include "../doomdef.h"
+
+#include "../console.h"
+#include "../command.h"
+#include "../i_time.h"
+#include "../i_system.h"
+#include "../g_game.h"
+#include "../hu_stuff.h"
+#include "../g_input.h"
+#include "../i_gamepad.h"
+#include "../m_menu.h"
+#include "../r_local.h"
+#include "../r_skins.h"
+#include "../p_local.h"
+#include "../p_setup.h"
+#include "../s_sound.h"
+#include "../i_sound.h"
+#include "../m_misc.h"
+#include "../am_map.h"
+#include "../byteptr.h"
 #include "d_netfil.h"
-#include "p_spec.h"
-#include "m_cheat.h"
+#include "../p_spec.h"
+#include "../m_cheat.h"
 #include "d_clisrv.h"
 #include "d_net.h"
-#include "v_video.h"
-#include "d_main.h"
-#include "m_random.h"
-#include "f_finale.h"
-#include "filesrch.h"
+#include "../v_video.h"
+#include "../d_main.h"
+#include "../m_random.h"
+#include "../f_finale.h"
+#include "../filesrch.h"
 #include "mserv.h"
-#include "z_zone.h"
-#include "lua_script.h"
-#include "lua_hook.h"
-#include "m_cond.h"
-#include "m_anigif.h"
-#include "md5.h"
-#include "m_perfstats.h"
+#include "../z_zone.h"
+#include "../lua_script.h"
+#include "../lua_hook.h"
+#include "../m_cond.h"
+#include "../m_anigif.h"
+#include "../md5.h"
+#include "../m_perfstats.h"
 
 #ifdef NETGAME_DEVMODE
 #define CV_RESTRICT CV_NETVAR
diff --git a/src/d_netcmd.h b/src/netcode/d_netcmd.h
similarity index 99%
rename from src/d_netcmd.h
rename to src/netcode/d_netcmd.h
index 47f68a17e9d8f3f73a7196062ba533791689a3cd..797a686a785b007d083875603c51dab60ef0875d 100644
--- a/src/d_netcmd.h
+++ b/src/netcode/d_netcmd.h
@@ -15,7 +15,7 @@
 #ifndef __D_NETCMD__
 #define __D_NETCMD__
 
-#include "command.h"
+#include "../command.h"
 
 // console vars
 extern consvar_t cv_playername;
diff --git a/src/d_netfil.c b/src/netcode/d_netfil.c
similarity index 99%
rename from src/d_netfil.c
rename to src/netcode/d_netfil.c
index bf3952cc92c694ea922aead26b9753ee5016d216..80fa068529cf8000f215f434242f9fb28e2473fa 100644
--- a/src/d_netfil.c
+++ b/src/netcode/d_netfil.c
@@ -31,24 +31,24 @@
 #include <sys/utime.h>
 #endif
 
-#include "doomdef.h"
-#include "doomstat.h"
-#include "d_main.h"
-#include "g_game.h"
-#include "i_time.h"
+#include "../doomdef.h"
+#include "../doomstat.h"
+#include "../d_main.h"
+#include "../g_game.h"
+#include "../i_time.h"
 #include "i_net.h"
-#include "i_system.h"
-#include "m_argv.h"
+#include "../i_system.h"
+#include "../m_argv.h"
 #include "d_net.h"
-#include "w_wad.h"
+#include "../w_wad.h"
 #include "d_netfil.h"
-#include "z_zone.h"
-#include "byteptr.h"
-#include "p_setup.h"
-#include "m_misc.h"
-#include "m_menu.h"
-#include "md5.h"
-#include "filesrch.h"
+#include "../z_zone.h"
+#include "../byteptr.h"
+#include "../p_setup.h"
+#include "../m_misc.h"
+#include "../m_menu.h"
+#include "../md5.h"
+#include "../filesrch.h"
 
 #include <errno.h>
 
diff --git a/src/d_netfil.h b/src/netcode/d_netfil.h
similarity index 99%
rename from src/d_netfil.h
rename to src/netcode/d_netfil.h
index ec53be58793b2dabc98511239f16820be73bab46..732efcd5ec7999fb87641edeb61cb0fb7ae59e5f 100644
--- a/src/d_netfil.h
+++ b/src/netcode/d_netfil.h
@@ -15,7 +15,7 @@
 
 #include "d_net.h"
 #include "d_clisrv.h"
-#include "w_wad.h"
+#include "../w_wad.h"
 
 typedef enum
 {
diff --git a/src/http-mserv.c b/src/netcode/http-mserv.c
similarity index 98%
rename from src/http-mserv.c
rename to src/netcode/http-mserv.c
index b0ef37fa169bf8857e70b4497fa769eafb652ddf..72dc1cafb2f5f398fe4a083f8de8c1eddea62dd3 100644
--- a/src/http-mserv.c
+++ b/src/netcode/http-mserv.c
@@ -18,14 +18,14 @@ Documentation available here.
 #include <curl/curl.h>
 #endif
 
-#include "doomdef.h"
+#include "../doomdef.h"
 #include "d_clisrv.h"
-#include "command.h"
-#include "m_argv.h"
-#include "m_menu.h"
+#include "../command.h"
+#include "../m_argv.h"
+#include "../m_menu.h"
 #include "mserv.h"
 #include "i_tcp.h"/* for current_port */
-#include "i_threads.h"
+#include "../i_threads.h"
 
 /* reasonable default I guess?? */
 #define DEFAULT_BUFFER_SIZE (4096)
diff --git a/src/i_addrinfo.c b/src/netcode/i_addrinfo.c
similarity index 100%
rename from src/i_addrinfo.c
rename to src/netcode/i_addrinfo.c
diff --git a/src/i_addrinfo.h b/src/netcode/i_addrinfo.h
similarity index 100%
rename from src/i_addrinfo.h
rename to src/netcode/i_addrinfo.h
diff --git a/src/i_net.h b/src/netcode/i_net.h
similarity index 98%
rename from src/i_net.h
rename to src/netcode/i_net.h
index 62b7528d59f0bcf6877f55ab467687fc7a55dad5..66126d050348ae23034ecfe9efa15c0a035c3214 100644
--- a/src/i_net.h
+++ b/src/netcode/i_net.h
@@ -18,8 +18,8 @@
 #pragma interface
 #endif
 
-#include "doomdef.h"
-#include "command.h"
+#include "../doomdef.h"
+#include "../command.h"
 
 /// \brief program net id
 #define DOOMCOM_ID (INT32)0x12345678l
diff --git a/src/i_tcp.c b/src/netcode/i_tcp.c
similarity index 99%
rename from src/i_tcp.c
rename to src/netcode/i_tcp.c
index ec3d1ae93a639edaa68d35348621dbae5677ef86..6baba6275d66fe410035e7ee3b4891ba92027e2a 100644
--- a/src/i_tcp.c
+++ b/src/netcode/i_tcp.c
@@ -36,7 +36,7 @@
 	#include <ws2tcpip.h>
 #endif
 
-#include "doomdef.h"
+#include "../doomdef.h"
 
 #ifdef USE_WINSOCK1
 	#include <winsock.h>
@@ -122,14 +122,14 @@ typedef union
 
 #define MAXBANS 100
 
-#include "i_system.h"
+#include "../i_system.h"
 #include "i_net.h"
 #include "d_net.h"
 #include "d_netfil.h"
 #include "i_tcp.h"
-#include "m_argv.h"
+#include "../m_argv.h"
 
-#include "doomstat.h"
+#include "../doomstat.h"
 
 // win32
 #ifdef USE_WINSOCK
diff --git a/src/i_tcp.h b/src/netcode/i_tcp.h
similarity index 100%
rename from src/i_tcp.h
rename to src/netcode/i_tcp.h
diff --git a/src/mserv.c b/src/netcode/mserv.c
similarity index 98%
rename from src/mserv.c
rename to src/netcode/mserv.c
index 90091d24156567937cee6c3f23212bcd02bb099b..78301f4d982bf1a532c3812b05db99c354d96e73 100644
--- a/src/mserv.c
+++ b/src/netcode/mserv.c
@@ -15,13 +15,13 @@
 #include <time.h>
 #endif
 
-#include "doomstat.h"
-#include "doomdef.h"
-#include "command.h"
-#include "i_threads.h"
+#include "../doomstat.h"
+#include "../doomdef.h"
+#include "../command.h"
+#include "../i_threads.h"
 #include "mserv.h"
-#include "m_menu.h"
-#include "z_zone.h"
+#include "../m_menu.h"
+#include "../z_zone.h"
 
 #ifdef MASTERSERVER
 
diff --git a/src/mserv.h b/src/netcode/mserv.h
similarity index 99%
rename from src/mserv.h
rename to src/netcode/mserv.h
index 23b26fbc54670fff4d5e2673dcd742c8bf0e950c..7fdf3ed1b90dfe1805b217f43fec9aa1edaf6ed6 100644
--- a/src/mserv.h
+++ b/src/netcode/mserv.h
@@ -14,7 +14,7 @@
 #ifndef _MSERV_H_
 #define _MSERV_H_
 
-#include "i_threads.h"
+#include "../i_threads.h"
 
 // lowered from 32 due to menu changes
 #define NUM_LIST_ROOMS 16
diff --git a/src/p_ceilng.c b/src/p_ceilng.c
index 98e9313625268fedd13a865038c4fc895692cdd6..61430d73f1599ff411639938f8d90f2b07fbae3e 100644
--- a/src/p_ceilng.c
+++ b/src/p_ceilng.c
@@ -17,7 +17,7 @@
 #include "r_main.h"
 #include "s_sound.h"
 #include "z_zone.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 
 // ==========================================================================
 //                              CEILINGS
diff --git a/src/p_lights.c b/src/p_lights.c
index 4b6a3673b51b6a1720d237e4b85ae8f7c7839c4b..971165e88e9593634813da9fd89cb86359811cf1 100644
--- a/src/p_lights.c
+++ b/src/p_lights.c
@@ -17,7 +17,7 @@
 #include "r_state.h"
 #include "z_zone.h"
 #include "m_random.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 
 /** Removes any active lighting effects in a sector.
   *
diff --git a/src/p_user.c b/src/p_user.c
index 1c2e4f7c9b3633bad5311cff594c1b97e814d070..6bbefcb199b6452bee4b8fd7983cc60d415cac92 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -17,7 +17,7 @@
 #include "doomdef.h"
 #include "i_system.h"
 #include "d_event.h"
-#include "d_net.h"
+#include "netcode/d_net.h"
 #include "g_game.h"
 #include "p_local.h"
 #include "r_fps.h"
diff --git a/src/r_segs.c b/src/r_segs.c
index facab62ab76479faeaabccc5a4f14a64446db40b..00ee4fd6d3e73765628490b7e7e78879dcadbab9 100644
--- a/src/r_segs.c
+++ b/src/r_segs.c
@@ -20,7 +20,7 @@
 
 #include "w_wad.h"
 #include "z_zone.h"
-#include "d_netcmd.h"
+#include "netcode/d_netcmd.h"
 #include "m_misc.h"
 #include "p_local.h" // Camera...
 #include "p_slopes.h"
diff --git a/src/r_things.c b/src/r_things.c
index 90b80dda8f499c5f70b93b1766a305c626907e29..642f3a8e2f7c87c9f87f3242c45a22c741324395 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -34,7 +34,7 @@
 #include "p_tick.h"
 #include "p_local.h"
 #include "p_slopes.h"
-#include "d_netfil.h" // blargh. for nameonly().
+#include "netcode/d_netfil.h" // blargh. for nameonly().
 #include "m_cheat.h" // objectplace
 #ifdef HWRENDER
 #include "hardware/hw_md2.h"
diff --git a/src/screen.c b/src/screen.c
index fe5b399958e7082bd872478a53a4ef2b3da37df1..05bbcfabb0476f032069858458d7d0968d63e1db 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -27,7 +27,7 @@
 #include "hu_stuff.h"
 #include "z_zone.h"
 #include "d_main.h"
-#include "d_clisrv.h"
+#include "netcode/d_clisrv.h"
 #include "f_finale.h"
 #include "y_inter.h" // usebuffer
 #include "i_sound.h" // closed captions
diff --git a/src/sdl/i_net.c b/src/sdl/i_net.c
index ee4a34c13dd8d4d10950d53d972d0cf873068943..515a855684e1e3d13dce6d35a785a2c7d07c9e93 100644
--- a/src/sdl/i_net.c
+++ b/src/sdl/i_net.c
@@ -21,16 +21,16 @@
 
 #include "../i_system.h"
 #include "../d_event.h"
-#include "../d_net.h"
+#include "../netcode/d_net.h"
 #include "../m_argv.h"
 
 #include "../doomstat.h"
 
-#include "../i_net.h"
+#include "../netcode/i_net.h"
 
 #include "../z_zone.h"
 
-#include "../i_tcp.h"
+#include "../netcode/i_tcp.h"
 
 #ifdef HAVE_SDL
 
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index ba4dd7985ec4b4369f537bb1ad9bd394f49ca083..50ceae34c258fa625957c1d0c80747655a234f52 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -193,7 +193,7 @@ static char returnWadPath[256];
 #include "../i_system.h"
 #include "../i_threads.h"
 #include "../screen.h" //vid.WndParent
-#include "../d_net.h"
+#include "../netcode/d_net.h"
 #include "../g_game.h"
 #include "../filesrch.h"
 #include "endtxt.h"
@@ -214,7 +214,7 @@ static char returnWadPath[256];
 
 #if !defined(NOMUMBLE) && defined(HAVE_MUMBLE)
 // Mumble context string
-#include "../d_clisrv.h"
+#include "../netcode/d_clisrv.h"
 #include "../byteptr.h"
 #endif
 
diff --git a/src/sdl/i_ttf.c b/src/sdl/i_ttf.c
index f2cd497eec03f24a6e3088e7e4f64e0925e16cc1..1f838e9b46267dfc5adec7f1f75541bf7765754b 100644
--- a/src/sdl/i_ttf.c
+++ b/src/sdl/i_ttf.c
@@ -21,7 +21,7 @@
 #include "SDL_ttf.h"
 #include "../doomdef.h"
 #include "../doomstat.h"
-#include "../d_netfil.h"
+#include "../netcode/d_netfil.h"
 #include "../filesrch.h"
 #include "i_ttf.h"
 
diff --git a/src/w_wad.c b/src/w_wad.c
index 171eab4f31bc246281424157a3f35a047d9d8c4f..23d84c3362d6628d482d0e389959681bd60bc7ec 100644
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -51,8 +51,8 @@
 #include "filesrch.h"
 
 #include "d_main.h"
-#include "d_netfil.h"
-#include "d_clisrv.h"
+#include "netcode/d_netfil.h"
+#include "netcode/d_clisrv.h"
 #include "dehacked.h"
 #include "r_defs.h"
 #include "r_data.h"
diff --git a/src/y_inter.c b/src/y_inter.c
index 1b1f49e0b7c7e30b866db69147a73006dbe4ff4f..c8bd06d91c5715d870f25dcf293b45edeba96fcb 100644
--- a/src/y_inter.c
+++ b/src/y_inter.c
@@ -15,7 +15,7 @@
 #include "f_finale.h"
 #include "g_game.h"
 #include "hu_stuff.h"
-#include "i_net.h"
+#include "netcode/i_net.h"
 #include "i_video.h"
 #include "p_tick.h"
 #include "r_defs.h"