Index: gedit-plugin-info.c
===================================================================
--- gedit-plugin-info.c	(revision 6112)
+++ gedit-plugin-info.c	(working copy)
@@ -80,6 +80,7 @@
 	g_free (info->website);
 	g_free (info->copyright);
 	g_strfreev (info->authors);
+	g_free (info->error);
 
 	g_free (info);
 }
@@ -132,7 +133,8 @@
 	plugin_file = g_key_file_new ();
 	if (!g_key_file_load_from_file (plugin_file, file, G_KEY_FILE_NONE, NULL))
 	{
-		g_warning ("Bad plugin file: %s", file);
+		info->error = g_strdup_printf (_("Bad plugin file: %s"), file);
+		g_warning (info->error);
 		goto error;
 	}
 
@@ -169,7 +171,8 @@
 	}
 	else
 	{
-		g_warning ("Could not find 'Module' in %s", file);
+		info->error = g_strdup_printf (_("Could not find 'Module' in %s"), file);
+		g_warning (info->error);
 		goto error;
 	}
 
@@ -194,8 +197,9 @@
 	{
 		info->loader = GEDIT_PLUGIN_LOADER_PY;
 #ifndef ENABLE_PYTHON
-		g_warning ("Cannot load Python plugin '%s' since gedit was not "
-			   "compiled with Python support.", file);
+		info->error = g_strdup_printf (_("Cannot load Python plugin '%s' since gedit was not "
+			  			 "compiled with Python support."), file);
+		g_warning (info->error);
 		goto error;
 #endif
 	}
@@ -214,7 +218,8 @@
 		info->name = str;
 	else
 	{
-		g_warning ("Could not find 'Name' in %s", file);
+		info->error = g_strdup_printf (_("Could not find 'Name' in %s"), file);
+		g_warning(info->error);
 		goto error;
 	}
 
@@ -275,12 +280,16 @@
 	   set it as available */
 	info->available = TRUE;
 	
+	/* We set the error as NULL to know that there aren't errors */
+	info->error = NULL;
+	
 	return info;
 
 error:
 	g_free (info->file);
 	g_free (info->module_name);
 	g_free (info->name);
+	g_free (info->error);
 	g_free (info);
 	g_key_file_free (plugin_file);
 
@@ -370,3 +379,11 @@
 
 	return info->copyright;
 }
+
+const gchar *
+gedit_plugin_info_get_error (GeditPluginInfo *info)
+{
+	g_return_val_if_fail (info != NULL, NULL);
+	
+	return info->error;
+}
Index: gedit-plugin-info.h
===================================================================
--- gedit-plugin-info.h	(revision 6112)
+++ gedit-plugin-info.h	(working copy)
@@ -53,6 +53,7 @@
 const gchar    **gedit_plugin_info_get_authors		(GeditPluginInfo *info);
 const gchar	*gedit_plugin_info_get_website		(GeditPluginInfo *info);
 const gchar	*gedit_plugin_info_get_copyright	(GeditPluginInfo *info);
+const gchar     *gedit_plugin_info_get_error            (GeditPluginInfo *info);
 
 G_END_DECLS
 
Index: gedit-plugin-manager.c
===================================================================
--- gedit-plugin-manager.c	(revision 6112)
+++ gedit-plugin-manager.c	(working copy)
@@ -323,7 +323,6 @@
 			   GtkTreeModel       *model,
 			   gboolean            active)
 {
-	GeditPluginsEngine *engine;
 	GeditPluginInfo *info;
 	gboolean res = TRUE;
 	
@@ -774,9 +773,44 @@
 		return;
 	}
 
-	gtk_list_store_set (model, &iter, ACTIVE_COLUMN, gedit_plugin_info_is_active (info), -1);
+	gtk_list_store_set (GTK_LIST_STORE (model), &iter, ACTIVE_COLUMN, gedit_plugin_info_is_active (info), -1);
 }
 
+static gboolean
+query_tooltip_cb (GtkWidget  *widget,
+                  gint        x,
+                  gint        y,
+                  gboolean    keyboard_mode,
+                  GtkTooltip *tooltip,
+                  gpointer useless)
+{
+	GtkTreeModel *model;
+	GtkTreePath *path;
+	GtkTreeIter iter;
+	gboolean is_row;
+	GeditPluginInfo *info;
+	
+	is_row = gtk_tree_view_get_tooltip_context (GTK_TREE_VIEW (widget),
+						    &x, &y,
+						    keyboard_mode,
+						    &model,
+						    &path,
+						    &iter);
+
+	if (is_row)
+	{
+		gtk_tree_model_get (model, &iter, INFO_COLUMN, &info, -1);
+		if (!gedit_plugin_info_is_available (info))
+		{
+			gtk_tooltip_set_text (tooltip,
+					      gedit_plugin_info_get_error (info));
+			return TRUE;
+		}
+	}
+	
+	return FALSE;
+}
+
 static void 
 gedit_plugin_manager_init (GeditPluginManager *pm)
 {
@@ -817,6 +851,13 @@
 
 	pm->priv->tree = gtk_tree_view_new ();
 	gtk_container_add (GTK_CONTAINER (viewport), pm->priv->tree);
+	/*We have to set the has-tooltip property to TRUE to add Tooltips to rows*/
+	g_object_set (pm->priv->tree,
+		      "has-tooltip", TRUE,
+		      NULL);
+	g_signal_connect (pm->priv->tree,
+			  "query-tooltip",
+			  G_CALLBACK (query_tooltip_cb), NULL);
 
 	hbuttonbox = gtk_hbutton_box_new ();
 	gtk_box_pack_start (GTK_BOX (pm), hbuttonbox, FALSE, FALSE, 0);
Index: gedit-plugin-info-priv.h
===================================================================
--- gedit-plugin-info-priv.h	(revision 6112)
+++ gedit-plugin-info-priv.h	(working copy)
@@ -67,6 +67,8 @@
 	   due to an error loading the plugin module (e.g. for Python plugins
 	   when the interpreter has not been correctly initializated) */
 	gint               available : 1;
+	
+	gchar             *error;
 };
 
 GeditPluginInfo		*_gedit_plugin_info_new		(const gchar *file);
Index: gedit-plugins-engine.c
===================================================================
--- gedit-plugins-engine.c	(revision 6112)
+++ gedit-plugins-engine.c	(working copy)
@@ -364,9 +364,10 @@
 				/* Mark plugin as unavailable and fails */
 				info->available = FALSE;
 				
-				g_warning ("Cannot load Python plugin '%s' since gedit "
-				           "was not able to initialize the Python interpreter.",
-				           info->name);
+				info->error ("Cannot load Python plugin '%s' since gedit "
+				             "was not able to initialize the Python interpreter.",
+				             info->name);
+				g_warning (info->error);
 
 				return FALSE;
 			}
@@ -393,15 +394,17 @@
 		switch (info->loader)
 		{
 			case GEDIT_PLUGIN_LOADER_C:
-				g_warning ("Cannot load plugin '%s' since file '%s' cannot be read.",
-					   info->name,			           
-					   gedit_module_get_path (GEDIT_MODULE (info->module)));
+				info->error = g_strdup_printf ("Cannot load plugin '%s' since file '%s' cannot be read.",
+							       info->name,			           
+							       gedit_module_get_path (GEDIT_MODULE (info->module)));
+				g_warning (info->error);
 				break;
 
 			case GEDIT_PLUGIN_LOADER_PY:
-				g_warning ("Cannot load Python plugin '%s' since file '%s' cannot be read.",
-					   info->name,			           
-					   info->module_name);
+				info->error = g_strdup_printf ("Cannot load Python plugin '%s' since file '%s' cannot be read.",
+							       info->name,			           
+							       info->module_name);
+				g_warning (info->error);
 				break;
 
 			default:
