diff --git a/modules/access/cdda/access.c b/modules/access/cdda/access.c
index 2b053ca4142dfbc39d86d7d6d917105703535f28..d11c186fd70ace5e635ed17cfea01836d81aa96b 100644
--- a/modules/access/cdda/access.c
+++ b/modules/access/cdda/access.c
@@ -579,9 +579,11 @@ static int CDDAControl( access_t *p_access, int i_query, va_list args )
 
             for( i = 0; i < p_cdda->i_titles; i++ )
             {
-                if ( p_cdda->p_title[i] )
+	      if ( p_cdda->p_title[i] ) {
                    (*ppp_title)[i] =
-                          vlc_input_title_Duplicate( p_cdda->p_title[i] );
+		     vlc_input_title_Duplicate( p_cdda->p_title[i] );
+	      }
+	      
             }
             break;
         }
diff --git a/modules/access/cdda/info.c b/modules/access/cdda/info.c
index 1b2430a2e82487d03c619da9ba1db50c07ff8521..05949b6077c483fafd5b9d2579d2531a161c5b89 100644
--- a/modules/access/cdda/info.c
+++ b/modules/access/cdda/info.c
@@ -892,8 +892,9 @@ CDDAFixupPlaylist( access_t *p_access, cdda_data_t *p_cdda,
 
         p_cdda->i_titles = 1;
         p_access->info.i_size =
-	  (p_cdda->lsn[p_cdda->i_track]
-	   - p_cdda->lsn[i_first_track+1]) * (int64_t) CDIO_CD_FRAMESIZE_RAW;
+	  (p_cdda->lsn[p_cdda->i_track-1]
+	   - p_cdda->lsn[i_first_track]) * (int64_t) CDIO_CD_FRAMESIZE_RAW;
+	p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE;
 	p_item->input.i_duration = 
 	  (p_cdda->lsn[p_cdda->i_track]
 	   - p_cdda->lsn[i_first_track+1]) / CDIO_CD_FRAMES_PER_SEC;
@@ -921,12 +922,13 @@ CDDAFixupPlaylist( access_t *p_access, cdda_data_t *p_cdda,
                                i_track, VLC_TRUE );
         }
         p_cdda->i_titles = p_cdda->i_tracks; /* should be +1 */
-        p_access->info.i_size =
-	  (p_cdda->lsn[i_first_track + p_cdda->i_tracks]
-	   - p_cdda->lsn[i_first_track]) * (int64_t) CDIO_CD_FRAMESIZE_RAW;
+        p_access->info.i_size = 
+	  (p_cdda->lsn[p_cdda->i_tracks] 
+	   - p_cdda->lsn[0]) * (int64_t) CDIO_CD_FRAMESIZE_RAW;
+	p_access->info.i_update |= INPUT_UPDATE_TITLE|INPUT_UPDATE_SIZE;
 	p_item->input.i_duration = 
-	  (p_cdda->lsn[i_first_track + p_cdda->i_tracks]
-	   - p_cdda->lsn[i_first_track]) / CDIO_CD_FRAMES_PER_SEC;
+	  (p_cdda->lsn[p_cdda->i_tracks] 
+	   - p_cdda->lsn[0]) / CDIO_CD_FRAMES_PER_SEC;
     }
 
     if( b_play )