diff -ru flac-1.1.2.OLD/build/lib.mk flac-1.1.2.NEW/build/lib.mk
--- flac-1.1.2.OLD/build/lib.mk	2005-01-25 15:10:47.000000000 +1100
+++ flac-1.1.2.NEW/build/lib.mk	2005-10-16 10:10:43.000000000 +1000
@@ -58,7 +58,7 @@
 
 debug   : CFLAGS = -g -O0 -DDEBUG $(CONFIG_CFLAGS) $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
 valgrind: CFLAGS = -g -O0 -DDEBUG $(CONFIG_CFLAGS) $(DEBUG_CFLAGS) -DFLAC__VALGRIND_TESTING -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
-release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(CONFIG_CFLAGS) $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
+release : CFLAGS = -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(CONFIG_CFLAGS) $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
 
 LFLAGS  = -L$(LIBPATH)
 
diff -ru flac-1.1.2.OLD/src/libFLAC/lpc.c flac-1.1.2.NEW/src/libFLAC/lpc.c
--- flac-1.1.2.OLD/src/libFLAC/lpc.c	2005-01-26 15:31:36.000000000 +1100
+++ flac-1.1.2.NEW/src/libFLAC/lpc.c	2005-10-16 10:44:58.000000000 +1000
@@ -293,6 +293,209 @@
 
 void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
 {
+	register const FLAC__int32 *qlp0 = &qlp_coeff[(order-1)];
+	register FLAC__int32 sum;
+	register const FLAC__int32 *history, *qlp;
+
+	history = &data[(-order)];
+
+	switch (order) {
+	case 12:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    + (qlp0[-7] * history[7])
+			    + (qlp0[-8] * history[8])
+			    + (qlp0[-9] * history[9])
+			    + (qlp0[-10] * history[10])
+			    + (qlp0[-11] * history[11])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 11:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    + (qlp0[-7] * history[7])
+			    + (qlp0[-8] * history[8])
+			    + (qlp0[-9] * history[9])
+			    + (qlp0[-10] * history[10])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 10:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    + (qlp0[-7] * history[7])
+			    + (qlp0[-8] * history[8])
+			    + (qlp0[-9] * history[9])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 9:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    + (qlp0[-7] * history[7])
+			    + (qlp0[-8] * history[8])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 8:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    + (qlp0[-7] * history[7])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 7:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    + (qlp0[-6] * history[6])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		} 
+		return;
+	case 6:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    + (qlp0[-5] * history[5])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		} 
+		return;
+	case 5:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    + (qlp0[-4] * history[4])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		} 
+		return;
+	case 4:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    + (qlp0[-3] * history[3])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		} 
+		return;
+	case 3:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    + (qlp0[-2] * history[2])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 2:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * history[0])
+			    + (qlp0[-1] * history[1])
+			    ;
+			++history;
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		}
+		return;
+	case 1:
+		for( ; data_len != 0; --data_len) {
+			sum = (qlp0[0] * (*(history++)));
+			*(data++) = *(residual++) + (sum >> lp_quantization);
+		} 
+		return;
+	default:
+		{ 
+			/* handle everything else: (order > 12)
+			 * with Duff's Device to reduce jumps */
+			const unsigned n0 = (order + 7)/8;
+			const int tmp = 0 - order - 1;
+			register const FLAC__int32 *qlpd = &qlp_coeff[order];
+			for( ; data_len != 0; --data_len) {
+				register unsigned n = n0;
+				sum = 0;
+				qlp = qlpd;
+				history = &data[tmp];
+			
+				switch(order%8) {
+				case 0: do {
+					sum += (*(--qlp)) * (*(++history));
+				case 7: sum += (*(--qlp)) * (*(++history));
+				case 6: sum += (*(--qlp)) * (*(++history));
+				case 5: sum += (*(--qlp)) * (*(++history));
+				case 4: sum += (*(--qlp)) * (*(++history));
+				case 3: sum += (*(--qlp)) * (*(++history));
+				case 2: sum += (*(--qlp)) * (*(++history));
+				case 1: sum += (*(--qlp)) * (*(++history));
+					} while (--n);     
+				}
+				
+				*(data++) = *(residual++) + (sum >> lp_quantization);
+			}
+			return;
+		}
+	}
+}
+
+#if 0
+void FLAC__lpc_restore_signal_orig(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
+{
 #ifdef FLAC__OVERFLOW_DETECT
 	FLAC__int64 sumo;
 #endif
@@ -339,6 +542,7 @@
 	}
 	*/
 }
+#endif /* 0 */
 
 void FLAC__lpc_restore_signal_wide(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
 {
diff -ru flac-1.1.2.OLD/src/libFLAC/Makefile.lite flac-1.1.2.NEW/src/libFLAC/Makefile.lite
--- flac-1.1.2.OLD/src/libFLAC/Makefile.lite	2005-01-27 11:08:35.000000000 +1100
+++ flac-1.1.2.NEW/src/libFLAC/Makefile.lite	2005-10-16 10:13:29.000000000 +1000
@@ -41,7 +41,7 @@
 ifeq ($(SOLARIS_BUILD),yes)
 DEFINES = -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA
 else
-DEFINES = -DFLAC__CPU_IA32 -DFLAC__USE_3DNOW -DFLAC__HAS_NASM -DFLAC__ALIGN_MALLOC_DATA
+DEFINES = -DFLAC__CPU_UNKNOWN -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA -DFLAC__INTEGER_ONLY_LIBRARY
 endif
 endif
 INCLUDES = -I./include -I$(topdir)/include
@@ -50,14 +50,6 @@
 ifeq ($(DARWIN_BUILD),yes)
 SRCS_S = \
 	ppc/as/lpc_asm.s
-else
-ifeq ($(SOLARIS_BUILD),yes)
-else
-SRCS_NASM = \
-	ia32/cpu_asm.nasm \
-	ia32/fixed_asm.nasm \
-	ia32/lpc_asm.nasm
-endif
 endif
 
 SRCS_C = \
@@ -66,7 +58,6 @@
 	cpu.c \
 	crc.c \
 	file_decoder.c \
-	file_encoder.c \
 	fixed.c \
 	float.c \
 	format.c \
@@ -76,10 +67,7 @@
 	metadata_iterators.c \
 	metadata_object.c \
 	seekable_stream_decoder.c \
-	seekable_stream_encoder.c \
-	stream_decoder.c \
-	stream_encoder.c \
-	stream_encoder_framing.c
+	stream_decoder.c
 
 include $(topdir)/build/lib.mk