diff --git a/src/brasero-eject-dialog.c b/src/brasero-eject-dialog.c
index b3008e8..69c4c6e 100644
--- a/src/brasero-eject-dialog.c
+++ b/src/brasero-eject-dialog.c
@@ -48,6 +48,7 @@ typedef struct _BraseroEjectDialogPrivate BraseroEjectDialogPrivate;
 struct _BraseroEjectDialogPrivate {
 	GtkWidget *selector;
 	GtkWidget *eject_button;
+	gboolean cancel_button_pressed;
 };
 
 #define BRASERO_EJECT_DIALOG_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), BRASERO_TYPE_EJECT_DIALOG, BraseroEjectDialogPrivate))
@@ -95,15 +96,28 @@ brasero_eject_dialog_activate (GtkDialog *dialog,
 		string = g_strdup_printf (_("The disc in \"%s\" cannot be ejected"), display_name);
 		g_free (display_name);
 
-		brasero_app_alert (brasero_app_get_default (),
-		                   string,
-		                   error?error->message:_("An unknown error occurred"),
-		                   GTK_MESSAGE_ERROR);
-
+		if (priv->cancel_button_pressed == FALSE)
+		{
+			brasero_app_alert (brasero_app_get_default (),
+		        	           string,
+		                	   error?error->message:_("An unknown error occurred"),
+			                   GTK_MESSAGE_ERROR);
+		}
+		else
+		{
+			if (error)
+			{
+				brasero_app_alert (brasero_app_get_default (),
+                                           g_strdup_printf (_("Error when cancelling the eject to the disc in \"%s\""), display_name),
+                                           error->message,
+                                           GTK_MESSAGE_ERROR);
+			}
+		}	
 		if (error)
 			g_error_free (error);
 
 		g_free (string);
+		
 		return;
 	}
 
@@ -117,6 +131,7 @@ brasero_eject_dialog_cancel (BraseroEjectDialog *dialog)
 	BraseroDrive *drive;
 
 	priv = BRASERO_EJECT_DIALOG_PRIVATE (dialog);
+	priv->cancel_button_pressed = TRUE;
 	drive = brasero_drive_selection_get_active (BRASERO_DRIVE_SELECTION (priv->selector));
 
 	if (drive) {
@@ -186,6 +201,8 @@ brasero_eject_dialog_init (BraseroEjectDialog *obj)
 	                  "clicked",
 	                  G_CALLBACK (brasero_eject_dialog_cancel_cb),
 	                  obj);
+	
+	priv->cancel_button_pressed = FALSE;
 
 	button = brasero_utils_make_button (_("_Eject"),
 					    NULL,
