diff --git a/src/mp3_decode.c b/src/mp3_decode.c
index 6fa931fe7..ed108c37b 100644
--- a/src/mp3_decode.c
+++ b/src/mp3_decode.c
@@ -432,12 +432,12 @@ int mp3Read(mp3DecodeData * data, Buffer * cb, DecoderControl * dc) {
 		data->frameOffset[data->currentFrame] = 
 				data->currentOffset;
 		if(data->stream.this_frame!=NULL) {
-			data->frameOffset[data->currentFrame]+= 
-					data->stream.this_frame-
-					data->stream.buffer;
+			data->frameOffset[data->currentFrame]-= 
+					data->stream.bufend-
+					data->stream.this_frame;
 		}
 		else {
-			data->frameOffset[data->currentFrame]+= 
+			data->frameOffset[data->currentFrame]-= 
 					data->stream.bufend-data->stream.buffer;
 		}
 		data->times[data->currentFrame] = data->timer;