Index: totem-disc.c
===================================================================
RCS file: /cvs/gnome/totem/src/plparse/totem-disc.c,v
retrieving revision 1.25
diff -u -p -u -r1.25 totem-disc.c
--- totem-disc.c	24 Sep 2005 19:15:08 -0000	1.25
+++ totem-disc.c	13 Oct 2005 03:31:56 -0000
@@ -212,20 +212,21 @@ cd_cache_get_dev_from_drives (GnomeVFSVo
     if (strcmp (pdev2, device) == 0) {
       char *mnt;
 
+      found = TRUE;
+      gnome_vfs_drive_ref (drive);
+      g_free (pdev2);
+      *mountpoint = NULL;
+
       mnt = gnome_vfs_drive_get_activation_uri (drive);
-      if (mnt && strncmp (mnt, "file://", 7) == 0) {
-	g_free (pdev2);
+      if (!mnt)
+	break;
+
+      if (strncmp (mnt, "file://", 7) == 0) {
         *mountpoint = g_strdup (mnt + 7);
         g_free (mnt);
-        gnome_vfs_drive_ref (drive);
-	found = TRUE;
         break;
-      } else if (mnt && strncmp (mnt, "cdda://", 7) == 0) {
-	g_free (pdev2);
-	*mountpoint = NULL;
+      } else if (strncmp (mnt, "cdda://", 7) == 0) {
 	g_free (mnt);
-	gnome_vfs_drive_ref (drive);
-	found = TRUE;
 	break;
       }
       g_free (mnt);
@@ -391,7 +392,10 @@ cd_cache_open_mountpoint (CdCache *cache
     char *command;
     int status;
 
-    command = g_strdup_printf ("mount %s", cache->mountpoint);
+    if (cache->mountpoint)
+      command = g_strdup_printf ("mount %s", cache->mountpoint);
+    else
+      command = g_strdup_printf ("mount %s", cache->device);
     if (!g_spawn_command_line_sync (command,
              NULL, NULL, &status, error)) {
       g_free (command);
