Index: calendar/gui/tasks-component.c
===================================================================
--- calendar/gui/tasks-component.c	(revision 36829)
+++ calendar/gui/tasks-component.c	(working copy)
@@ -486,6 +486,14 @@ mark_offline_cb (EPopup *ep, EPopupItem 
 	set_offline_availability (ep, pitem, data, "1"); 
 }
 
+static void
+manage_groups_cb (EPopup *ep, EPopupItem *pitem, void *data)
+{
+	TasksComponentView *component_view = data;
+
+	e_source_selector_manage_groups (E_SOURCE_SELECTOR (component_view->source_selector));
+}
+
 static EPopupItem etc_source_popups[] = {
 	{ E_POPUP_ITEM, "10.new", N_("_New Task List"), new_task_list_cb, NULL, "stock_todo", 0, 0 },
 	{ E_POPUP_ITEM, "15.copy", N_("_Copy..."), copy_task_list_cb, NULL, "edit-copy", 0, E_CAL_POPUP_SOURCE_PRIMARY },
@@ -496,6 +504,9 @@ static EPopupItem etc_source_popups[] = 
 	{ E_POPUP_ITEM, "30.mark_tasks_offline", N_("_Make available for offline use"), mark_offline_cb, NULL, "stock_disconnect", E_CAL_POPUP_SOURCE_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_OFFLINE },
 	{ E_POPUP_ITEM, "40.mark_tasks_no_offline", N_("_Do not make available for offline use"), mark_no_offline_cb, NULL, "stock_connect", E_CAL_POPUP_SOURCE_NO_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_NO_OFFLINE },
 
+	{ E_POPUP_BAR, "98.bar" },
+	{ E_POPUP_ITEM, "98.managegroups", N_("Manage _groups"), manage_groups_cb, NULL, NULL, 0, 0 },
+
 	{ E_POPUP_BAR, "99.bar" },
 	{ E_POPUP_ITEM, "99.properties", N_("_Properties"), edit_task_list_cb, NULL, "document-properties", 0, E_CAL_POPUP_SOURCE_PRIMARY },
 };
Index: calendar/gui/calendar-component.c
===================================================================
--- calendar/gui/calendar-component.c	(revision 36829)
+++ calendar/gui/calendar-component.c	(working copy)
@@ -629,6 +629,14 @@ edit_calendar_cb (EPopup *ep, EPopupItem
 	calendar_setup_edit_calendar (GTK_WINDOW (gtk_widget_get_toplevel(ep->target->widget)), selected_source, NULL);
 }
 
+static void
+manage_groups_cb (EPopup *ep, EPopupItem *pitem, void *data)
+{
+	CalendarComponentView *component_view = data;
+
+	e_source_selector_manage_groups (E_SOURCE_SELECTOR (component_view->source_selector));
+}
+
 static void 
 set_offline_availability (EPopup *ep, EPopupItem *pitem, void *data, const char *value)
 {
@@ -664,6 +672,9 @@ static EPopupItem ecc_source_popups[] = 
 	{ E_POPUP_ITEM, "30.mark_calendar_offline", N_("_Make available for offline use"), mark_offline_cb, NULL, "stock_disconnect", E_CAL_POPUP_SOURCE_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_OFFLINE },
 	{ E_POPUP_ITEM, "40.mark_calendar_no_offline", N_("_Do not make available for offline use"), mark_no_offline_cb, NULL, "stock_connect", E_CAL_POPUP_SOURCE_NO_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_NO_OFFLINE },
 
+	{ E_POPUP_BAR, "98.bar" },
+	{ E_POPUP_ITEM, "98.managegroups", N_("Manage _groups"), manage_groups_cb, NULL, NULL, 0, 0 },
+
 	{ E_POPUP_BAR, "99.bar" },
 	{ E_POPUP_ITEM, "99.properties", N_("_Properties"), edit_calendar_cb, NULL, "document-properties", 0, E_CAL_POPUP_SOURCE_PRIMARY },
 };
Index: calendar/gui/memos-component.c
===================================================================
--- calendar/gui/memos-component.c	(revision 36829)
+++ calendar/gui/memos-component.c	(working copy)
@@ -495,6 +495,14 @@ mark_offline_cb (EPopup *ep, EPopupItem 
 	set_offline_availability (ep, pitem, data, "1"); 
 }
 
+static void
+manage_groups_cb (EPopup *ep, EPopupItem *pitem, void *data)
+{
+	MemosComponentView *component_view = data;
+
+	e_source_selector_manage_groups (E_SOURCE_SELECTOR (component_view->source_selector));
+}
+
 static EPopupItem emc_source_popups[] = {
 	{ E_POPUP_ITEM, "10.new", N_("_New Memo List"), new_memo_list_cb, NULL, "stock_notes", 0, 0 },
 	{ E_POPUP_ITEM, "15.copy", N_("_Copy..."), copy_memo_list_cb, NULL, "edit-copy", 0, E_CAL_POPUP_SOURCE_PRIMARY },
@@ -505,6 +513,9 @@ static EPopupItem emc_source_popups[] = 
 	{ E_POPUP_ITEM, "30.mark_memos_offline", N_("_Make available for offline use"), mark_offline_cb, NULL, "stock_disconnect", E_CAL_POPUP_SOURCE_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_OFFLINE },
 	{ E_POPUP_ITEM, "40.mark_memos_no_offline", N_("_Do not make available for offline use"), mark_no_offline_cb, NULL, "stock_connect", E_CAL_POPUP_SOURCE_NO_OFFLINE, E_CAL_POPUP_SOURCE_USER|E_CAL_POPUP_SOURCE_PRIMARY|E_CAL_POPUP_SOURCE_NO_OFFLINE },
 
+	{ E_POPUP_BAR, "98.bar" },
+	{ E_POPUP_ITEM, "98.managegroups", N_("Manage _groups"), manage_groups_cb, NULL, NULL, 0, 0 },
+
 	{ E_POPUP_BAR, "99.bar" },
 	{ E_POPUP_ITEM, "99.properties", N_("_Properties"), edit_memo_list_cb, NULL, "document-properties", 0, E_CAL_POPUP_SOURCE_PRIMARY },
 };
Index: calendar/ChangeLog
===================================================================
--- calendar/ChangeLog	(revision 36829)
+++ calendar/ChangeLog	(working copy)
@@ -1,3 +1,12 @@
+2008-12-04  Milan Crha  <mcrha@redhat.com>
+
+	** Part of fix for bug #442398
+
+	* gui/calendar-component.c: (manage_groups_cb), (ecc_source_popups[]):
+	* gui/tasks-component.c: (manage_groups_cb), (etc_source_popups[]):
+	* gui/memos-component.c: (manage_groups_cb), (emc_source_popups[]):
+	Context menu items for managing of groups in a source selector.
+
 2008-12-03  Milan Crha  <mcrha@redhat.com>
 
 	** Part of fix for bug #352287
