diff --git a/plugins/project-manager/plugin.c b/plugins/project-manager/plugin.c
index 38340a9..6ec58e9 100644
--- a/plugins/project-manager/plugin.c
+++ b/plugins/project-manager/plugin.c
@@ -656,6 +656,7 @@ confirm_removal (ProjectManagerPlugin *plugin, GList *selected)
 	gboolean remove_group_file = FALSE;
 	gboolean source = FALSE;
 	gboolean remove_source_file = FALSE;
+	guint nbItem ;
 
 	g_return_val_if_fail (selected != NULL, FALSE);
 
@@ -680,76 +681,59 @@ confirm_removal (ProjectManagerPlugin *plugin, GList *selected)
 		if (type != data->type) type = GBF_TREE_NODE_UNKNOWN;
 	}
 
-	switch (type)
-	{
-	case GBF_TREE_NODE_GROUP:
-		mesg = g_string_new (_("Are you sure you want to remove the following group from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_TARGET:
-		mesg = g_string_new (_("Are you sure you want to remove the following target from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_SOURCE:
-		mesg = g_string_new (_("Are you sure you want to remove the following source file from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_PACKAGE:
-		mesg = g_string_new (_("Are you sure you want to remove the following package from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_MODULE:
-		mesg = g_string_new (_("Are you sure you want to remove the following module from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_UNKNOWN:
-		mesg = g_string_new (_("Are you sure you want to remove the following elements from the project?\n\n"));
-		break;
-	case GBF_TREE_NODE_SHORTCUT:
-		/* Remove shortcut without confirmation */
-		return TRUE;
-	default:
-		g_warn_if_reached ();
-		return FALSE;
-	}
-
-	for (item = g_list_first (selected); item != NULL; item = g_list_next (item))
-	{
-		GbfTreeData *data = (GbfTreeData *)item->data;
-
-		switch (data->type)
+	nbItem = g_list_length(selected);
+	if(nbItem == 1) {
+		for (item = g_list_first (selected); item != NULL; item = g_list_next (item))
 		{
-		case GBF_TREE_NODE_GROUP:
-			g_string_append_printf (mesg, _("Group: %s\n"), data->name);
-			break;
-		case GBF_TREE_NODE_TARGET:
-			g_string_append_printf (mesg, _("Target: %s\n"), data->name);
-			break;
-		case GBF_TREE_NODE_SOURCE:
-			g_string_append_printf (mesg, _("Source: %s\n"), data->name);
-			break;
-		case GBF_TREE_NODE_SHORTCUT:
-			g_string_append_printf (mesg, _("Shortcut: %s\n"), data->name);
-			return TRUE;
-		case GBF_TREE_NODE_MODULE:
-			g_string_append_printf (mesg, _("Module: %s\n"), data->name);
-			break;
-		case GBF_TREE_NODE_PACKAGE:
-			g_string_append_printf (mesg, _("Package: %s\n"), data->name);
-			break;
-		default:
-			g_warn_if_reached ();
-			return FALSE;
+			GbfTreeData *data = (GbfTreeData *)item->data;
+
+			switch (data->type)
+			{
+			case GBF_TREE_NODE_GROUP:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the group \"%s\" from the project?\n\n"), data->name);
+				break;
+			case GBF_TREE_NODE_TARGET:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the target \"%s\" from the project?\n\n"), data->name);
+				break;
+			case GBF_TREE_NODE_SOURCE:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the source \"%s\" from the project?\n\n"), data->name);
+				break;
+			case GBF_TREE_NODE_SHORTCUT:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the shortcut \"%s\" from the project?\n\n"), data->name);
+				/*return TRUE;*/
+				break ;
+			case GBF_TREE_NODE_MODULE:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the module \"%s\" from the project?\n\n"), data->name);
+				break;
+			case GBF_TREE_NODE_PACKAGE:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the package \"%s\" from the project?\n\n"), data->name);
+				break;
+			case GBF_TREE_NODE_UNKNOWN:
+				mesg = g_strdup_printf(_("Are you sure you want to remove the element \"%s\" from the project?\n\n"), data->name);
+				break;
+			default:
+				g_warn_if_reached ();
+				return FALSE;
+			}
 		}
 	}
+	else
+		mesg = g_strdup_printf(_("Are you sure you want to remove the %d elements from the project?\n\n"), nbItem);
 
 	if (group || source)
 	{
-		g_string_append (mesg, "\n");
 		if (remove_group_file)
-			g_string_append (mesg, _("The group will be deleted from the file system."));
+			g_strconcat (mesg, _("The group will be deleted from the file system.\n\n"));
 		else if (group)
-			g_string_append (mesg, _("The group will not be deleted from the file system."));
+			g_strconcat (mesg, _("The group will not be deleted from the file system.\n\n"));
 		if (remove_source_file)
-			g_string_append (mesg, _("The source file will be deleted from the file system."));
+			g_strconcat (mesg, _("The source file will be deleted from the file system.\n\n"));
 		else if (source)
-			g_string_append (mesg, _("The source file will not be deleted from the file system."));
+			g_strconcat (mesg, _("The source file will not be deleted from the file system.\n\n"));
+		else
+			g_strconcat (mesg, "\n\n");
 	}
+	
 
 	answer =
 		anjuta_util_dialog_boolean_question (get_plugin_parent_window (plugin), FALSE,
