Index: /libmpc/trunk/libmpcdec/streaminfo.c
===================================================================
--- /libmpc/trunk/libmpcdec/streaminfo.c	(revision 346)
+++ /libmpc/trunk/libmpcdec/streaminfo.c	(revision 347)
@@ -127,9 +127,9 @@
 
 // This is the gain reference used in old replaygain
-#define OLD_GAIN_REF 65.
+#define OLD_GAIN_REF 64.82
 
 	// convert gain info
 	if (si->gain_title != 0) {
-		int tmp = (int)((OLD_GAIN_REF - (mpc_int16_t)si->gain_title / 100.) * 256);
+		int tmp = OLD_GAIN_REF * 256 - ((int)(mpc_int16_t)si->gain_title * 256 + 50) / 100;
 		if (tmp >= (1 << 16) || tmp < 0) tmp = 0;
 		si->gain_title = (mpc_int16_t) tmp;
@@ -137,5 +137,5 @@
 
 	if (si->gain_album != 0) {
-		int tmp = (int)((OLD_GAIN_REF - (mpc_int16_t)si->gain_album / 100.) * 256);
+		int tmp = OLD_GAIN_REF * 256 - ((int)(mpc_int16_t)si->gain_album * 256 + 50) / 100;
 		if (tmp >= (1 << 16) || tmp < 0) tmp = 0;
 		si->gain_album = (mpc_int16_t) tmp;
@@ -143,8 +143,8 @@
 
 	if (si->peak_title != 0)
- 		si->peak_title = (mpc_uint16_t) (log10(si->peak_title) * 20 * 256);
+ 		si->peak_title = (mpc_uint16_t) (log10(si->peak_title) * 20 * 256 + .5);
 
 	if (si->peak_album != 0)
-		si->peak_album = (mpc_uint16_t) (log10(si->peak_album) * 20 * 256);
+		si->peak_album = (mpc_uint16_t) (log10(si->peak_album) * 20 * 256 + .5);
 
 	mpc_get_encoder_string(si);
