diff --git a/include/cdrom.h b/include/cdrom.h
index e263dd2cb85bcfd838c58cb8f71737b36eb5cbdb..660325ce5d8c69a8b74ce57d7987bcf98a8e8778 100644
--- a/include/cdrom.h
+++ b/include/cdrom.h
@@ -30,17 +30,21 @@ typedef struct {
 #elif defined(__FreeBSD__) || defined(__NetBSD__)
     struct cd_sub_channel_info	sc;
 #endif
-    int				cdaMode;
-    UINT16			nCurTrack;
-    DWORD			dwCurFrame;
+    /* those data reflect the cdaudio structure and
+     * don't change while playing
+     */
     UINT16			nTracks;
     UINT16			nFirstTrack;
     UINT16			nLastTrack;
-    DWORD			dwTotalLen;
     LPDWORD			lpdwTrackLen;
     LPDWORD			lpdwTrackPos;
     LPBYTE			lpbTrackFlags;
-    DWORD			dwFirstOffset;
+    DWORD			dwFirstFrame;
+    DWORD			dwLastFrame;
+    /* those data change while playing */
+    int				cdaMode;
+    UINT16			nCurTrack;
+    DWORD			dwCurFrame;
 } WINE_CDAUDIO;
 
 #define	WINE_CDA_DONTKNOW		0x00
diff --git a/misc/cdrom.c b/misc/cdrom.c
index 633bc7a7c7e4d18fefe74b89415e6db6423984ea..098737c56cb85fe3dd1371ec0db2ce28ac3cb452 100644
--- a/misc/cdrom.c
+++ b/misc/cdrom.c
@@ -39,8 +39,8 @@ int	CDAUDIO_Open(WINE_CDAUDIO* wcda)
     wcda->cdaMode = WINE_CDA_OPEN;	/* to force reading tracks info */
     wcda->nCurTrack = 0;
     wcda->nTracks = 0;
-    wcda->dwTotalLen = 0;
-    wcda->dwFirstOffset = 0;
+    wcda->dwFirstFrame = 0;
+    wcda->dwLastFrame = 0;
     wcda->lpdwTrackLen = NULL;
     wcda->lpdwTrackPos = NULL;
     wcda->lpbTrackFlags = NULL;
@@ -152,7 +152,7 @@ BOOL CDAUDIO_GetTracksInfo(WINE_CDAUDIO* wcda)
 #endif
 	else
 #ifdef linux
-	    entry.cdte_track = i + 1;
+	entry.cdte_track = i + 1;
 #else
 	entry.starting_track = i + 1;
 #endif
@@ -187,7 +187,7 @@ BOOL CDAUDIO_GetTracksInfo(WINE_CDAUDIO* wcda)
 #endif
 	if (i == 0) {
 	    last_start = start;
-	    wcda->dwFirstOffset = start;
+	    wcda->dwFirstFrame = start;
 	    TRACE("dwFirstOffset=%u\n", start);
 	} else {
 	    length = start - last_start;
@@ -207,7 +207,7 @@ BOOL CDAUDIO_GetTracksInfo(WINE_CDAUDIO* wcda)
 #endif 
 	TRACE("track #%u flags=%02x\n", i + 1, wcda->lpbTrackFlags[i]);
     }
-    wcda->dwTotalLen = total_length;
+    wcda->dwLastFrame = last_start;
     TRACE("total_len=%u\n", total_length);
     return TRUE;
 #else
@@ -425,6 +425,9 @@ int	CDAUDIO_Pause(WINE_CDAUDIO* wcda, int pauseOn)
 #endif
 }
 
+/**************************************************************************
+ * 				CDAUDIO_Seek			[internal]
+ */
 int	CDAUDIO_Seek(WINE_CDAUDIO* wcda, DWORD at)
 {
 #if defined(linux) || defined(__FreeBSD__) || defined(__NetBSD__)
@@ -435,7 +438,7 @@ int	CDAUDIO_Seek(WINE_CDAUDIO* wcda, DWORD at)
     msf.second = (at % CDFRAMES_PERMIN) / CDFRAMES_PERSEC;
     msf.frame  = at % CDFRAMES_PERSEC;
 
-   ret = ioctl(wcda->unixdev, CDROMSEEK, &msf);
+    ret = ioctl(wcda->unixdev, CDROMSEEK, &msf);
 #else
    /* FIXME: the current end for play is lost 
     * use end of CD ROM instead
diff --git a/msdos/int2f.c b/msdos/int2f.c
index 2b77bf9b23dbe032d27b796b63bbdf9601bb8559..517185f511c7897e1e7ac290cc23d2f328e411bc 100644
--- a/msdos/int2f.c
+++ b/msdos/int2f.c
@@ -620,7 +620,7 @@ static void MSCDEX_Handler(CONTEXT86* context)
 		    break;
 		    
 		case 8: /* Volume size */
-		    PTR_AT(io_stru, 1, DWORD) = wcda.dwTotalLen;
+		    PTR_AT(io_stru, 1, DWORD) = wcda.dwLastFrame;
 		    TRACE(" ----> VOLUME SIZE <%ld>\n", PTR_AT(io_stru, 1, DWORD));
 		    break;
 		    
@@ -633,7 +633,7 @@ static void MSCDEX_Handler(CONTEXT86* context)
 		case 10: /* audio disk info */
 		    io_stru[1] = wcda.nFirstTrack; /* starting track of the disc */
 		    io_stru[2] = wcda.nLastTrack;  /* ending track */
-		    MSCDEX_StoreMSF(wcda.dwTotalLen, io_stru + 3);
+		    MSCDEX_StoreMSF(wcda.dwLastFrame, io_stru + 3);
 		    
 		    TRACE(" ----> AUDIO DISK INFO <%d-%d/%08lx>\n",
 			  io_stru[1], io_stru[2], PTR_AT(io_stru, 3, DWORD));