Index: libmpc/branches/r2d/mpcgain/mpcgain.c
===================================================================
--- libmpc/branches/r2d/mpcgain/mpcgain.c	(revision 219)
+++ libmpc/branches/r2d/mpcgain/mpcgain.c	(revision 220)
@@ -41,7 +41,4 @@
 #include "../libmpcdec/huffman.h"
 #include "../libmpcdec/mpc_bits_reader.h"
-
-// crc32.c
-unsigned long crc32(unsigned char *buf, int len);
 
 static void usage(const char *exename)
@@ -124,5 +121,4 @@
 		mpc_block b;
 		mpc_uint64_t size;
-		mpc_uint32_t crc_pos, crc;
 		FILE * file;
 
@@ -140,6 +136,6 @@
 		size = mpc_bits_get_block(&r, &b);
 
-		while( memcmp(b.key, "SI", 2) != 0 ) {
-			header_pos[j] += b.size;
+		while( memcmp(b.key, "RG", 2) != 0 ) {
+			header_pos[j] += b.size + size;
 			fseek(file, header_pos[j], SEEK_SET);
 			fread(buffer, 1, 16, file);
@@ -150,11 +146,4 @@
 
 		header_pos[j] += size;
-
-		fread(buffer + 16, 1, 48, file);
-
-		crc_pos = r.buff - buffer + (8 > r.count); // save position of CRC
-		r.buff += 4; // skip CRC
-		mpc_bits_get_size(&r, &size);
-		size += 4 + crc_pos;
 
 		buffer[size] = 1; // replaygain version
@@ -168,12 +157,6 @@
 		buffer[size + 8] = album_peak & 0xFF;
 
-		crc = crc32(buffer + crc_pos + 4, (int)b.size - 4);
-		buffer[crc_pos] = crc >> 24;
-		buffer[crc_pos + 1] = (crc >> 16) & 0xFF;
-		buffer[crc_pos + 2] = (crc >> 8) & 0xFF;
-		buffer[crc_pos + 3] = crc & 0xFF;
-
 		fseek(file, header_pos[j], SEEK_SET);
-		fwrite(buffer + crc_pos, 1, b.size, file);
+		fwrite(buffer + size, 1, b.size, file);
 		fclose(file);
 	}
