diff --git a/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp b/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp
index 05a0b99..c35c22f 100644
--- a/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp
+++ b/APlayer/Players/GameMusic/libgme/Gbs_Emu.cpp
@@ -18,10 +18,8 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
 
 #include "blargg_source.h"
 
-Gbs_Emu::equalizer_t const Gbs_Emu::handheld_eq   =
-	Music_Emu::make_equalizer( -47.0, 2000 );
-Gbs_Emu::equalizer_t const Gbs_Emu::headphones_eq =
-	Music_Emu::make_equalizer( 0.0, 300 );
+Gbs_Emu::equalizer_t const Gbs_Emu::handheld_eq   ( -47.0, 2000 );
+Gbs_Emu::equalizer_t const Gbs_Emu::headphones_eq (   0.0,  300 );
 
 Gbs_Emu::Gbs_Emu()
 {
@@ -40,8 +38,8 @@ Gbs_Emu::Gbs_Emu()
 	set_silence_lookahead( 6 );
 	set_max_initial_silence( 21 );
 	set_gain( 1.2 );
-	
-	set_equalizer( make_equalizer( -1.0, 120 ) );
+	static equalizer_t const eq ( -1.0, 120 );
+	set_equalizer( eq );
 }
 
 Gbs_Emu::~Gbs_Emu() { }
diff --git a/APlayer/Players/GameMusic/libgme/Gbs_Emu.h b/APlayer/Players/GameMusic/libgme/Gbs_Emu.h
index b233a2b..c9054cc 100644
--- a/APlayer/Players/GameMusic/libgme/Gbs_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Gbs_Emu.h
@@ -41,7 +41,9 @@ public:
 	
 public:
 	// deprecated
-	using Music_Emu::load;
+	#if !defined(__GNUC__) || __GNUC__ > 2
+	Music_Emu::load;
+	#endif
 	blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader
 			{ return load_remaining_( &h, sizeof h, in ); }
 
diff --git a/APlayer/Players/GameMusic/libgme/Gym_Emu.h b/APlayer/Players/GameMusic/libgme/Gym_Emu.h
index 1e4ed8b..d11440e 100644
--- a/APlayer/Players/GameMusic/libgme/Gym_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Gym_Emu.h
@@ -34,7 +34,9 @@ public:
 	
 public:
 	// deprecated
-	using Music_Emu::load;
+	#if !defined(__GNUC__) || __GNUC__ > 2
+	Music_Emu::load;
+	#endif
 	blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader
 			{ return load_remaining_( &h, sizeof h, in ); }
 	enum { gym_rate = 60 }; 
diff --git a/APlayer/Players/GameMusic/libgme/Music_Emu.cpp b/APlayer/Players/GameMusic/libgme/Music_Emu.cpp
index 942e86e..065e42b 100644
--- a/APlayer/Players/GameMusic/libgme/Music_Emu.cpp
+++ b/APlayer/Players/GameMusic/libgme/Music_Emu.cpp
@@ -24,8 +24,7 @@ int const silence_threshold = 0x10;
 long const fade_block_size = 512;
 int const fade_shift = 8; // fade ends with gain at 1.0 / (1 << fade_shift)
 
-Music_Emu::equalizer_t const Music_Emu::tv_eq =
-	Music_Emu::make_equalizer( -8.0, 180 );
+Music_Emu::equalizer_t const Music_Emu::tv_eq ( -8.0, 180 );
 
 void Music_Emu::clear_track_vars()
 {
@@ -50,6 +49,7 @@ void Music_Emu::unload()
 }
 
 Music_Emu::Music_Emu()
+	: equalizer_(-1.0, 60)
 {
 	effects_buffer = 0;
 	
@@ -62,8 +62,6 @@ Music_Emu::Music_Emu()
 	max_initial_silence = 2;
 	silence_lookahead   = 3;
 	ignore_silence_     = false;
-	equalizer_.treble   = -1.0;
-	equalizer_.bass     = 60;
 	
 	static const char* const names [] = {
 		"Voice 1", "Voice 2", "Voice 3", "Voice 4",
diff --git a/APlayer/Players/GameMusic/libgme/Music_Emu.h b/APlayer/Players/GameMusic/libgme/Music_Emu.h
index d98f7ce..0a8bc0a 100644
--- a/APlayer/Players/GameMusic/libgme/Music_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Music_Emu.h
@@ -64,7 +64,11 @@ public:
 	void ignore_silence( bool disable = true );
 	
 	// Info for current track
-	using Gme_File::track_info;
+	#if (!defined(__GNUC__) || (__GNUC__ > 2))
+	Gme_File::track_info;
+	#else
+	blargg_err_t track_info( track_info_t* out, int k ) const {return Gme_File::track_info(out,k); }
+	#endif
 	blargg_err_t track_info( track_info_t* out ) const;
 	
 // Sound customization
@@ -199,7 +203,7 @@ struct Gme_Info_ : Music_Emu
 
 inline blargg_err_t Music_Emu::track_info( track_info_t* out ) const
 {
-	return track_info( out, current_track_ );
+	return Gme_File::track_info( out, current_track_ );
 }
 
 inline long Music_Emu::sample_rate() const          { return sample_rate_; }
diff --git a/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp b/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp
index eab4bfb..0de854a 100644
--- a/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp
+++ b/APlayer/Players/GameMusic/libgme/Nsf_Emu.cpp
@@ -31,10 +31,8 @@ int const fme7_flag  = 0x20;
 
 long const clock_divisor = 12;
 
-Nsf_Emu::equalizer_t const Nsf_Emu::nes_eq     =
-	Music_Emu::make_equalizer( -1.0, 80 );
-Nsf_Emu::equalizer_t const Nsf_Emu::famicom_eq =
-	Music_Emu::make_equalizer( -15.0, 80 );
+Nsf_Emu::equalizer_t const Nsf_Emu::nes_eq     (  -1.0, 80 );
+Nsf_Emu::equalizer_t const Nsf_Emu::famicom_eq ( -15.0, 80 );
 
 int Nsf_Emu::pcm_read( void* emu, nes_addr_t addr )
 {
diff --git a/APlayer/Players/GameMusic/libgme/Nsf_Emu.h b/APlayer/Players/GameMusic/libgme/Nsf_Emu.h
index 0b00168..08b987a 100644
--- a/APlayer/Players/GameMusic/libgme/Nsf_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Nsf_Emu.h
@@ -44,7 +44,11 @@ public:
 	
 public:
 	// deprecated
-	using Music_Emu::load;
+	#if (!defined(__GNUC__) || (__GNUC__ > 2))
+		Music_Emu::load;
+	#else
+		blargg_err_t load( Data_Reader& r) {return Music_Emu::load(r);}
+	#endif
 	blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader
 			{ return load_remaining_( &h, sizeof h, in ); }
 
diff --git a/APlayer/Players/GameMusic/libgme/Spc_Emu.h b/APlayer/Players/GameMusic/libgme/Spc_Emu.h
index 09063f1..5f08719 100644
--- a/APlayer/Players/GameMusic/libgme/Spc_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Spc_Emu.h
@@ -48,7 +48,9 @@ public:
 	
 public:
 	// deprecated
-	using Music_Emu::load;
+	#if !defined(__GNUC__) || __GNUC__ > 2
+	Music_Emu::load;
+	#endif
 	blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader
 			{ return load_remaining_( &h, sizeof h, in ); }
 	byte const* trailer() const; // use track_info()
diff --git a/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp b/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp
index 5c6bc7c..bfc42d8 100644
--- a/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp
+++ b/APlayer/Players/GameMusic/libgme/Vgm_Emu.cpp
@@ -35,8 +35,8 @@ Vgm_Emu::Vgm_Emu()
 	set_voice_types( types );
 	
 	set_silence_lookahead( 1 ); // tracks should already be trimmed
-	
-	set_equalizer( make_equalizer( -14.0, 80 ) );
+	static equalizer_t const eq( -14.0, 80 );
+	set_equalizer( eq);
 }
 
 Vgm_Emu::~Vgm_Emu() { }
diff --git a/APlayer/Players/GameMusic/libgme/Vgm_Emu.h b/APlayer/Players/GameMusic/libgme/Vgm_Emu.h
index 65895af..4a1f778 100644
--- a/APlayer/Players/GameMusic/libgme/Vgm_Emu.h
+++ b/APlayer/Players/GameMusic/libgme/Vgm_Emu.h
@@ -51,7 +51,9 @@ public:
 	
 public:
 	// deprecated
-	using Music_Emu::load;
+	#if (!defined(__GNUC__) || (__GNUC__ > 2))
+	Music_Emu::load;
+	#endif
 	blargg_err_t load( header_t const& h, Data_Reader& in ) // use Remaining_Reader
 			{ return load_remaining_( &h, sizeof h, in ); }
 	byte const* gd3_data( int* size_out = 0 ) const; // use track_info()
diff --git a/APlayer/Players/GameMusic/libgme/gme.cpp b/APlayer/Players/GameMusic/libgme/gme.cpp
index 4770984..98fee50 100644
--- a/APlayer/Players/GameMusic/libgme/gme.cpp
+++ b/APlayer/Players/GameMusic/libgme/gme.cpp
@@ -359,9 +359,7 @@ BLARGG_EXPORT void      gme_set_equalizer  ( Music_Emu* me, gme_equalizer_t cons
 
 BLARGG_EXPORT void gme_equalizer( Music_Emu const* me, gme_equalizer_t* out )
 {
-	gme_equalizer_t e = gme_equalizer_t(); // Default-init all fields to 0.0f
-	e.treble = me->equalizer().treble;
-	e.bass   = me->equalizer().bass;
+	gme_equalizer_t e(me->equalizer().treble, me->equalizer().bass);
 	*out = e;
 }
 
diff --git a/APlayer/Players/GameMusic/libgme/gme.h b/APlayer/Players/GameMusic/libgme/gme.h
index 8eb952e..666538e 100644
--- a/APlayer/Players/GameMusic/libgme/gme.h
+++ b/APlayer/Players/GameMusic/libgme/gme.h
@@ -143,6 +143,8 @@ typedef struct gme_equalizer_t
 	double bass;   /* 1 = full bass, 90 = average, 16000 = almost no bass */
 	
 	double d2,d3,d4,d5,d6,d7,d8,d9; /* reserved */
+
+	gme_equalizer_t(double t, double b) {treble = t; bass = b;};
 } gme_equalizer_t;
 
 /* Get current frequency equalizater parameters */
diff --git a/Master/Makefile b/Master/Makefile
index 7ac0424..f8ad52f 100644
--- a/Master/Makefile
+++ b/Master/Makefile
@@ -5,20 +5,20 @@ VERSION := 4.0.1
 #build date is not currently used.
 BUILDDATE := $(shell date +%b_%d_%Y)
 
-ARCH := $(shell setgcc | cut -d' ' -f3)
+ARCH := $(shell setg++ | cut -d' ' -f3)
 OBJDIR := __OBJ_$(ARCH)
 DEPDIR := __DEP_$(ARCH)
 RULESDIR := __RULES_$(ARCH)
 MAKEFILEDIR := makefiles_x86
 
-CC := gcc -c -pipe
-LD := gcc
+CC := g++ -c -pipe
+LD := g++
 
 #Dependency generator
-#DEP := gcc -M -DBEOS_BUILD
+#DEP := g++ -M -DBEOS_BUILD
 #Ignores system headers. A bit faster, but might give
 #small problems if local headers are used with <> insetad of "".
-DEP := gcc -MM -DBEOS_BUILD
+DEP := g++ -MM -DBEOS_BUILD
 
 BUILD_DEBUG=TRUE
 #BUILD_DEBUG=FALSE
diff --git a/Master/makefiles_x86/makefile.APlayer b/Master/makefiles_x86/makefile.APlayer
index 6b93ba8..aa75bb3 100644
--- a/Master/makefiles_x86/makefile.APlayer
+++ b/Master/makefiles_x86/makefile.APlayer
@@ -20,9 +20,9 @@ $(NAME)_TYPE := APP
 $(NAME)_LIBS := $(APLAYER_LIBS) be root
 
 ifeq ($(findstring gcc2,$(ARCH)),gcc2)
-$(NAME)_LIBS += stdc++.r4
+$(NAME)_LIBS += stdc++.r4.r4
 else
-$(NAME)_LIBS += stdc++
+$(NAME)_LIBS += stdc++.r4
 endif
 
 $(NAME)_RSRCS := $(ROOTDIR)/BeOS/Server_x86.rsrc
