diff --git a/src/Makefile b/src/Makefile
index 9ea1ea239488fea403046535385e911a35c1eab7..b40adf32c04c79dc000395c306aef4942f9b63d3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -482,7 +482,6 @@ OBJS:=$(i_main_o) \
 		$(OBJDIR)/lzf.o	     \
 		$(OBJDIR)/vid_copy.o \
 		$(OBJDIR)/b_bot.o \
-		$(i_cdmus_o)    \
 		$(i_net_o)      \
 		$(i_system_o)   \
 		$(i_sound_o)    \
diff --git a/src/Makefile.cfg b/src/Makefile.cfg
index 5c56978e717da251d54494ab68399213b2f92e82..404171cd2891c8520bcc667af2027151cd278f1d 100644
--- a/src/Makefile.cfg
+++ b/src/Makefile.cfg
@@ -355,7 +355,6 @@ endif
 endif
 
 #determine the interface directory (where you put all i_*.c)
-i_cdmus_o=$(OBJDIR)/i_cdmus.o
 i_net_o=$(OBJDIR)/i_net.o
 i_system_o=$(OBJDIR)/i_system.o
 i_sound_o=$(OBJDIR)/i_sound.o
diff --git a/src/d_main.c b/src/d_main.c
index 6bc42da14e746969bd265740e1574e6b9a7e8fdd..6ed9a04d1ba8fa935588dc03dcb6becc37897c59 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -825,9 +825,6 @@ void D_SRB2Loop(void)
 		S_UpdateSounds(); // move positional sounds
 		S_UpdateClosedCaptions();
 
-		// check for media change, loop music..
-		I_UpdateCD();
-
 #ifdef HW3SOUND
 		HW3S_EndFrameUpdate();
 #endif
@@ -1470,10 +1467,6 @@ void D_SRB2Main(void)
 		}
 	}
 
-	// Initialize CD-Audio
-	if (M_CheckParm("-usecd") && !dedicated)
-		I_InitCD();
-
 	if (M_CheckParm("-noupload"))
 		COM_BufAddText("downloading 0\n");
 
diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 6aa168aa7680fbe804e382f71ac4142f017e9964..68b8ecfc1ad1ec65d56cd19de46bb62781a9917e 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -861,10 +861,6 @@ void D_RegisterClientCommands(void)
 	CV_RegisterVar(&cv_midimusicvolume);
 	CV_RegisterVar(&cv_numChannels);
 
-	// i_cdmus.c
-	CV_RegisterVar(&cd_volume);
-	CV_RegisterVar(&cdUpdate);
-
 	// screen.c
 	CV_RegisterVar(&cv_fullscreen);
 	CV_RegisterVar(&cv_renderview);
diff --git a/src/i_sound.h b/src/i_sound.h
index 4bd05d23442322d3a4ee2500f4c2c62e942b33d0..a2249a10273fa48c95650a75fa692b84d4de37d8 100644
--- a/src/i_sound.h
+++ b/src/i_sound.h
@@ -9,7 +9,7 @@
 // See the 'LICENSE' file for more details.
 //-----------------------------------------------------------------------------
 /// \file  i_sound.h
-/// \brief System interface, sound, music and CD
+/// \brief System interface, sound, music
 
 #ifndef __I_SOUND__
 #define __I_SOUND__
@@ -241,53 +241,4 @@ boolean I_FadeSong(UINT8 target_volume, UINT32 ms, void (*callback)(void));
 boolean I_FadeOutStopSong(UINT32 ms);
 boolean I_FadeInPlaySong(UINT32 ms, boolean looping);
 
-/// ------------------------
-//  CD MUSIC I/O
-/// ------------------------
-
-/**	\brief  cd music interface
-*/
-extern UINT8 cdaudio_started;
-
-/**	\brief Startup the CD system
-*/
-void I_InitCD(void);
-
-/**	\brief Stop the CD playback
-*/
-void I_StopCD(void);
-
-/**	\brief Pause the CD playback
-*/
-void I_PauseCD(void);
-
-/**	\brief Resume the CD playback
-*/
-void I_ResumeCD(void);
-
-/**	\brief Shutdown the CD system
-*/
-void I_ShutdownCD(void);
-
-/**	\brief Update the CD info
-*/
-void I_UpdateCD(void);
-
-/**	\brief	The I_PlayCD function
-
-	\param	track	CD track number
-	\param	looping	if true, loop the track
-
-	\return	void
-*/
-void I_PlayCD(UINT8 track, UINT8 looping);
-
-/**	\brief	The I_SetVolumeCD function
-
-	\param	volume	volume level to set at
-
-	\return	return 0 on failure
-*/
-boolean I_SetVolumeCD(INT32 volume);
-
 #endif
diff --git a/src/p_setup.c b/src/p_setup.c
index ceb96df40e36836abcb8f49673f0904c665fbdc4..44154ed2c579949cc2f06bdcd8db1ae5e64e7fdb 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -4168,9 +4168,6 @@ boolean P_LoadLevel(boolean fromnetsave)
 	// clear special respawning que
 	iquehead = iquetail = 0;
 
-	// Fab : 19-07-98 : start cd music for this level (note: can be remapped)
-	I_PlayCD((UINT8)(gamemap), false);
-
 	P_MapEnd();
 
 	// Remove the loading shit from the screen
diff --git a/src/s_sound.c b/src/s_sound.c
index 072a69f6c13de72fcaa2311f6f4e56f27c9fe150..8f4af25991328cdce490fc42e165c3c79ea97206 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -2433,13 +2433,6 @@ void S_PauseAudio(void)
 	if (I_SongPlaying() && !I_SongPaused())
 		I_PauseSong();
 
-	// pause cd music
-#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)
-	I_PauseCD();
-#else
-	I_StopCD();
-#endif
-
 	S_SetStackAdjustmentStart();
 }
 
@@ -2451,9 +2444,6 @@ void S_ResumeAudio(void)
 	if (I_SongPlaying() && I_SongPaused())
 		I_ResumeSong();
 
-	// resume cd music
-	I_ResumeCD();
-
 	S_AdjustMusicStackTics();
 }
 
diff --git a/src/s_sound.h b/src/s_sound.h
index 35d1c3dc5e57276b0cdae86c34f8fe9cb9db362e..4e15a2bd05a2010638c445eabba817b1290bf6af 100644
--- a/src/s_sound.h
+++ b/src/s_sound.h
@@ -69,8 +69,6 @@ extern consvar_t musserver_cmd, musserver_arg;
 #endif
 
 extern CV_PossibleValue_t soundvolume_cons_t[];
-//part of i_cdmus.c
-extern consvar_t cd_volume, cdUpdate;
 
 #if defined (macintosh) && !defined (HAVE_SDL)
 typedef enum
diff --git a/src/sdl/CMakeLists.txt b/src/sdl/CMakeLists.txt
index 744b242fa83d15dd9c51cc5a80fa2758f138a1cd..c7d6c74a42f9c1db8b818fce9e3aebb2044c904f 100644
--- a/src/sdl/CMakeLists.txt
+++ b/src/sdl/CMakeLists.txt
@@ -36,7 +36,6 @@ set(SRB2_SDL2_SOURCES
 	dosstr.c
 	endtxt.c
 	hwsym_sdl.c
-	i_cdmus.c
 	i_main.c
 	i_net.c
 	i_system.c
diff --git a/src/sdl/i_cdmus.c b/src/sdl/i_cdmus.c
deleted file mode 100644
index 5d086e73a05fdc7d28b23818a9141aa9edc650dc..0000000000000000000000000000000000000000
--- a/src/sdl/i_cdmus.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "../command.h"
-#include "../s_sound.h"
-#include "../i_sound.h"
-
-//
-// CD MUSIC I/O
-//
-
-UINT8 cdaudio_started = 0;
-
-consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
-consvar_t cdUpdate  = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
-
-
-void I_InitCD(void){}
-
-void I_StopCD(void){}
-
-void I_PauseCD(void){}
-
-void I_ResumeCD(void){}
-
-void I_ShutdownCD(void){}
-
-void I_UpdateCD(void){}
-
-void I_PlayCD(UINT8 track, UINT8 looping)
-{
-	(void)track;
-	(void)looping;
-}
-
-FUNCMATH boolean I_SetVolumeCD(int volume)
-{
-	(void)volume;
-	return false;
-}
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index b24ae2814985d04b3674aaf5afa3c09628dcd78c..83b66ab063e042c4483ac94577b1b0e86eb07d6c 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -2328,7 +2328,6 @@ void I_Quit(void)
 	M_FreePlayerSetupColors();
 	I_ShutdownMusic();
 	I_ShutdownSound();
-	I_ShutdownCD();
 	// use this for 1.28 19990220 by Kin
 	I_ShutdownGraphics();
 	I_ShutdownInput();
@@ -2389,16 +2388,14 @@ void I_Error(const char *error, ...)
 		if (errorcount == 3)
 			I_ShutdownSound();
 		if (errorcount == 4)
-			I_ShutdownCD();
-		if (errorcount == 5)
 			I_ShutdownGraphics();
-		if (errorcount == 6)
+		if (errorcount == 5)
 			I_ShutdownInput();
-		if (errorcount == 7)
+		if (errorcount == 6)
 			I_ShutdownSystem();
-		if (errorcount == 8)
+		if (errorcount == 7)
 			SDL_Quit();
-		if (errorcount == 9)
+		if (errorcount == 8)
 		{
 			M_SaveConfig(NULL);
 			G_SaveGameData();
@@ -2446,7 +2443,6 @@ void I_Error(const char *error, ...)
 	M_FreePlayerSetupColors();
 	I_ShutdownMusic();
 	I_ShutdownSound();
-	I_ShutdownCD();
 	// use this for 1.28 19990220 by Kin
 	I_ShutdownGraphics();
 	I_ShutdownInput();