diff -ur avp.orig/avp/win95/gadgets/trepgadg.hpp avp/avp/win95/gadgets/trepgadg.hpp
--- avp.orig/avp/win95/gadgets/trepgadg.hpp	2001-12-09 01:21:49.000000000 +0000
+++ avp/avp/win95/gadgets/trepgadg.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -56,12 +56,12 @@
 			int FixP_Alpha
 		);
 
-		struct r2pos TextReportGadget :: GetPos_Rel
+		struct r2pos GetPos_Rel
 		(
 			const struct r2rect& R2Rect_Parent
 		) const;
 
-		r2size TextReportGadget :: GetSize
+		r2size GetSize
 		(
 			const struct r2rect& R2Rect_Parent
 		) const;
diff -ur avp.orig/avp/win95/projload.hpp avp/avp/win95/projload.hpp
--- avp.orig/avp/win95/projload.hpp	2001-08-03 06:30:40.000000000 +0100
+++ avp/avp/win95/projload.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -54,6 +54,8 @@
 struct hierarchy_variant_data;
 };
 
+class File_Chunk;
+
 class Global_Hierarchy_Store
 {
 
diff -ur avp.orig/Makefile avp/Makefile
--- avp.orig/Makefile	2003-10-15 07:10:42.000000000 +0100
+++ avp/Makefile	2006-09-18 22:45:49.000000000 +0100
@@ -2,8 +2,8 @@
 CXX = g++
 NASM = nasm
 
-#CFLAGS = -g -Wall -pipe
-CFLAGS = -g -Wall -pipe -O2
+CFLAGS ?= -g -pipe -O2
+CFLAGS += -Wall
 #CFLAGS = -DNDEBUG -Wall -pipe -O6 -ffast-math -fomit-frame-pointer -march=pentium -mcpu=pentiumpro
 
 CFLAGS += -DLINUX
@@ -12,7 +12,7 @@
 CFLAGS += $(shell sdl-config --cflags)
 CXXFLAGS = $(CFLAGS)
 
-LDLIBS = $(shell sdl-config --libs) -lopenal
+LDFLAGS += $(shell sdl-config --libs) $(shell openal-config --libdir)/libopenal.a
 
 AFLAGS = -g -w+macro-params -w+orphan-labels -w+number-overflow
 
@@ -56,7 +56,7 @@
 all: AvP
 
 AvP: $(OBJ) # depend $(OBJ)
-	$(CXX) -o AvP $(OBJ) $(LDLIBS)
+	$(CXX) -o AvP $(OBJ) $(LDFLAGS)
 
 compile: $(OBJ)
 
diff -ur avp.orig/openal.c avp/openal.c
--- avp.orig/openal.c	2003-08-10 03:38:08.000000000 +0100
+++ avp/openal.c	2006-09-18 23:50:23.000000000 +0100
@@ -5,7 +5,6 @@
 
 #include <AL/al.h>
 #include <AL/alc.h>
-#include <AL/alut.h>
 
 #include <SDL/SDL_audio.h> // For a few defines (AUDIO_*)
 
diff -ur avp.orig/win95/chnkload.hpp avp/win95/chnkload.hpp
--- avp.orig/win95/chnkload.hpp	2001-08-07 03:38:43.000000000 +0100
+++ avp/win95/chnkload.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -41,6 +41,8 @@
 							const ChunkObject* object=0	  //object used so that conversion from float to int can be done in world coordinates
 							);
 							
+class Sprite_Header_Chunk;
+
 extern BOOL copy_sprite_to_shapeheader (RIFFHANDLE, SHAPEHEADER *& shphd,Sprite_Header_Chunk* shc, int listpos = GLS_NOTINLIST);
 
 
diff -ur avp.orig/win95/chunk.hpp avp/win95/chunk.hpp
--- avp.orig/win95/chunk.hpp	2001-07-28 05:44:27.000000000 +0100
+++ avp/win95/chunk.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -365,7 +365,7 @@
 	virtual void fill_data_block_for_process(char * data_start);	
 
 
-	Chunk* Chunk_With_Children::DynCreate(const char* data);
+	Chunk* DynCreate(const char* data);
 
 protected:
 
diff -ur avp.orig/win95/chunkpal.hpp avp/win95/chunkpal.hpp
--- avp.orig/win95/chunkpal.hpp	2001-12-18 02:23:41.000000000 +0000
+++ avp/win95/chunkpal.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -549,7 +549,7 @@
 class Environment_Game_Mode_Chunk;
 class Environment_Game_Mode_Header_Chunk;
 
-
+class Environment_Data_Chunk;
 
 class Environment_Game_Mode_Chunk : public Chunk_With_Children
 {
diff -ur avp.orig/win95/hash_tem.hpp avp/win95/hash_tem.hpp
--- avp.orig/win95/hash_tem.hpp	2003-01-14 05:43:38.000000000 +0000
+++ avp/win95/hash_tem.hpp	2006-09-18 23:38:01.000000000 +0100
@@ -231,8 +231,13 @@
 // HashFunction(unsigned), HashFunction(void const *), HashFunction(char const *)
 // you can disable the default hash functions by defining HT_NODEFAULTFNS
 
+namespace IFF {
+class RegEntry;
+};
+
 #ifndef HT_NODEFAULTFNS
 	// a hash function for integral (unsigned) values
+    inline unsigned int HashFunction(const IFF::RegEntry& rEntry);
 	inline unsigned HashFunction(unsigned const _i)
 	{
 		return _i ^ _i>>4 ^ _i>>9 ^ _i>>15 ^ _i>>22;
@@ -418,7 +423,7 @@
 		};
 
 		// a _base_HashTable non-const iterator - can remove entry pointed to
-		class Iterator : public ConstIterator
+		class Iterator : public _base_HashTable::ConstIterator
 		{
 				// Nested class functions apparently have to be declared here for MSVC compatability
 			public:
diff -ur avp.orig/win95/iff.cpp avp/win95/iff.cpp
--- avp.orig/win95/iff.cpp	2001-12-06 00:22:49.000000000 +0000
+++ avp/win95/iff.cpp	2006-09-18 23:38:01.000000000 +0100
@@ -219,7 +219,7 @@
 
 } // namespace IFF
 
-inline unsigned HashFunction(IFF::RegEntry const & rEntry)
+inline unsigned int HashFunction(const IFF::RegEntry& rEntry)
 {
 	return HashFunction(rEntry.m_idChunk.m_nID);
 }