Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c	(revision 33723)
+++ calendar/gui/dialogs/comp-editor.c	(working copy)
@@ -911,11 +911,14 @@
 	if (!priv->changed)
 		return TRUE;
 
-	if (!e_cal_is_read_only (priv->client, &read_only, NULL) || read_only)
-		return TRUE;
-
 	switch (save_component_dialog (GTK_WINDOW(editor), priv->comp)) {
 	case GTK_RESPONSE_YES: /* Save */
+		if (!e_cal_is_read_only (priv->client, &read_only, NULL) || read_only) {
+			e_error_run ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (editor)), "calendar:prompt-read-only-cal", NULL);
+			/* don't discard changes when selected readonly calendar */
+			return FALSE;
+		}
+
 		comp = comp_editor_get_current_comp (editor);
 		e_cal_component_get_summary (comp, &text);
 		g_object_unref (comp);
@@ -1258,6 +1261,7 @@
 	CompEditorPrivate *priv = editor->priv;
 	ECalComponentText text;
 	gboolean delegated = FALSE;
+	gboolean read_only;
 	ECalComponent *comp;
 
 	if (e_attachment_bar_get_download_count (E_ATTACHMENT_BAR (editor->priv->attachment_bar)) ){
@@ -1280,6 +1284,12 @@
 	if (!response) 
 		return;
 	}	
+
+	if (!e_cal_is_read_only (priv->client, &read_only, NULL) || read_only) {
+		e_error_run ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (editor)), "calendar:prompt-read-only-cal", NULL);
+		return;
+	}
+
 	commit_all_fields (editor);
 	if (e_cal_component_is_instance (priv->comp))
 		if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor), delegated))
Index: calendar/gui/dialogs/event-page.c
===================================================================
--- calendar/gui/dialogs/event-page.c	(revision 33723)
+++ calendar/gui/dialogs/event-page.c	(working copy)
@@ -867,6 +867,9 @@
 		       	sensitize ? "1" : "0", NULL);
 	bonobo_ui_component_set_prop (priv->uic, "/commands/InsertSendOptions", "sensitive", sensitize ? "1" : "0"
 			, NULL);
+	bonobo_ui_component_set_prop (priv->uic, "/commands/ActionRecurrence", "sensitive", sensitize ? "1" : "0", NULL);
+	bonobo_ui_component_set_prop (priv->uic, "/commands/ActionFreeBusy", "sensitive", sensitize ? "1" : "0", NULL);
+
 	bonobo_ui_component_set_prop (priv->uic, "/commands/ViewCategories", "sensitive", "1", NULL);
 	bonobo_ui_component_set_prop (priv->uic, "/commands/ViewTimeZone", "sensitive", "1", NULL);
 
Index: calendar/gui/dialogs/alarm-list-dialog.glade
===================================================================
--- calendar/gui/dialogs/alarm-list-dialog.glade	(revision 33723)
+++ calendar/gui/dialogs/alarm-list-dialog.glade	(working copy)
@@ -145,10 +145,6 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
-				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				  <property name="width_chars">-1</property>
-				  <property name="single_line_mode">False</property>
-				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
Index: calendar/gui/e-meeting-list-view.c
===================================================================
--- calendar/gui/e-meeting-list-view.c	(revision 33723)
+++ calendar/gui/e-meeting-list-view.c	(working copy)
@@ -490,7 +490,7 @@
 	col = gtk_tree_view_get_column (view, pos -1);
 	gtk_tree_view_column_set_resizable (col, TRUE);
 	gtk_tree_view_column_set_reorderable(col, TRUE);
-	g_object_set (col, "width", 50, NULL);
+	g_object_set (col, "min-width", 50, NULL);
 	g_signal_connect (renderer, "cell_edited", G_CALLBACK (attendee_edited_cb), view);
 	g_signal_connect (renderer, "editing-canceled", G_CALLBACK (attendee_editing_canceled_cb), view);
 	g_hash_table_insert (edit_table, GINT_TO_POINTER (E_MEETING_STORE_ATTENDEE_COL), renderer);	
Index: calendar/ChangeLog
===================================================================
--- calendar/ChangeLog	(revision 33723)
+++ calendar/ChangeLog	(working copy)
@@ -1,3 +1,18 @@
+2007-06-26  Milan Crha  <mcrha@redhat.com>
+
+	** Fix for bug #438613 and #329594
+
+	* gui/dialogs/event-page.c: (sensitize_widgets):
+	Disable recurrence and free/busy actions with read only calendars.
+	* gui/dialogs/comp-editor.c: (prompt_and_save_changes):
+	When clicked "Save", then claim on readonly calendars and didn't
+	discard changes silently.
+	* gui/dialogs/comp-editor.c: (menu_file_save_cb):
+	Claims on readonly calendars before validating form datas.
+
+	* gui/e-meeting-list-view.c: (build_table): Fixed runtime warning.
+	* gui/dialogs/alarm-list-dialog.glade: Fixed runtime warnings.
+
 2007-06-18  Srinivasa Ragavan  <sragavan@novell.com>
 
         ** Fix for bug #448223 from Gilles Dartiguelongue
