diff --git a/dlls/winemp3.acm/mpg123.h b/dlls/winemp3.acm/mpg123.h
index 14ebe11..1648408 100644
--- a/dlls/winemp3.acm/mpg123.h
+++ b/dlls/winemp3.acm/mpg123.h
@@ -34,10 +34,6 @@
 # define M_PI       3.14159265358979323846
 # define M_SQRT2	1.41421356237309504880
 # define REAL_IS_FLOAT
-# define NEW_DCT9
-
-# define random rand
-# define srandom srand
 
 #endif
 
@@ -55,9 +51,6 @@
 #define INLINE
 #endif
 
-/* AUDIOBUFSIZE = n*64 with n=1,2,3 ...  */
-#define		AUDIOBUFSIZE		16384
-
 #ifndef FALSE
 #define         FALSE                   0
 #endif
@@ -79,9 +72,6 @@
 #define MAXFRAMESIZE 1792
 
 
-/* Pre Shift fo 16 to 8 bit converter table */
-#define AUSHIFT (3)
-
 struct frame {
     int stereo;
     int jsbound;
@@ -163,45 +153,13 @@
 };
 
 extern int synth_1to1 (struct mpstr *,real *,int,unsigned char *,int *);
-extern int synth_1to1_8bit (real *,int,unsigned char *,int *);
 extern int synth_1to1_mono (struct mpstr *,real *,unsigned char *,int *);
-extern int synth_1to1_mono2stereo (real *,unsigned char *,int *);
-extern int synth_1to1_8bit_mono (real *,unsigned char *,int *);
-extern int synth_1to1_8bit_mono2stereo (real *,unsigned char *,int *);
-
-extern int synth_2to1 (real *,int,unsigned char *,int *);
-extern int synth_2to1_8bit (real *,int,unsigned char *,int *);
-extern int synth_2to1_mono (real *,unsigned char *,int *);
-extern int synth_2to1_mono2stereo (real *,unsigned char *,int *);
-extern int synth_2to1_8bit_mono (real *,unsigned char *,int *);
-extern int synth_2to1_8bit_mono2stereo (real *,unsigned char *,int *);
-
-extern int synth_4to1 (real *,int,unsigned char *,int *);
-extern int synth_4to1_8bit (real *,int,unsigned char *,int *);
-extern int synth_4to1_mono (real *,unsigned char *,int *);
-extern int synth_4to1_mono2stereo (real *,unsigned char *,int *);
-extern int synth_4to1_8bit_mono (real *,unsigned char *,int *);
-extern int synth_4to1_8bit_mono2stereo (real *,unsigned char *,int *);
-
-extern int synth_ntom (real *,int,unsigned char *,int *);
-extern int synth_ntom_8bit (real *,int,unsigned char *,int *);
-extern int synth_ntom_mono (real *,unsigned char *,int *);
-extern int synth_ntom_mono2stereo (real *,unsigned char *,int *);
-extern int synth_ntom_8bit_mono (real *,unsigned char *,int *);
-extern int synth_ntom_8bit_mono2stereo (real *,unsigned char *,int *);
-
-extern void rewindNbits(int bits);
-extern int  hsstell(void);
-extern int get_songlen(struct frame *fr,int no);
 
 extern void init_layer3(int);
 extern void init_layer2(void);
 extern void make_decode_tables(long scale);
-extern void make_conv16to8_table(int);
 extern void dct64(real *,real *,real *);
 
-extern void synth_ntom_set_step(long,long);
-
 extern unsigned char *conv16to8;
 extern const long freqs[9];
 extern real muls[27][64];
