Index: calendar/gui/calendar-component.c
===================================================================
--- calendar/gui/calendar-component.c	(revision 33717)
+++ calendar/gui/calendar-component.c	(working copy)
@@ -641,11 +641,23 @@
 }
 
 static void
+source_changed_cb (ESource *source, GnomeCalendar *calendar)
+{
+	if (calendar) {
+		GtkWidget *widget = gnome_calendar_get_current_view_widget (calendar);
+
+		if (widget)
+			gtk_widget_queue_draw (widget);
+	}
+}
+
+static void
 source_added_cb (GnomeCalendar *calendar, ECalSourceType source_type, ESource *source, CalendarComponentView *component_view)
 {
 	switch (source_type) {
 	case E_CAL_SOURCE_TYPE_EVENT:
 		e_source_selector_select_source (E_SOURCE_SELECTOR (component_view->source_selector), source);
+		g_signal_connect (source, "changed", G_CALLBACK (source_changed_cb), calendar);
 		break;
 	default:
 		break;
@@ -657,6 +669,7 @@
 {
 	switch (source_type) {
 	case E_CAL_SOURCE_TYPE_EVENT:
+		g_signal_handlers_disconnect_by_func (source, G_CALLBACK (source_changed_cb), calendar);
 		e_source_selector_unselect_source (E_SOURCE_SELECTOR (component_view->source_selector), source);
 		break;
 	default:
Index: calendar/ChangeLog
===================================================================
--- calendar/ChangeLog	(revision 33717)
+++ calendar/ChangeLog	(working copy)
@@ -1,3 +1,13 @@
+2007-06-22  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #328484
+
+	* gui/calendar-component.c: (source_changed_cb):
+	New callback to refresh view after source changed.
+	* gui/calendar-component.c: (source_added_cb),
+	(source_removed_cb): Connecting and disconnecting
+	on change callback to source.
+
 2007-06-18  Srinivasa Ragavan  <sragavan@novell.com>
 
         ** Fix for bug #448223 from Gilles Dartiguelongue
