Index: gui/dialogs/event-page.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/event-page.c,v
retrieving revision 1.115
diff -u -p -r1.115 event-page.c
--- gui/dialogs/event-page.c	15 Jun 2006 04:56:45 -0000	1.115
+++ gui/dialogs/event-page.c	14 Jul 2006 04:58:57 -0000
@@ -513,6 +513,9 @@ update_time (EventPage *epage, ECalCompo
 				       start_zone);
 	event_page_set_show_timezone (epage, calendar_config_get_show_timezone() & !all_day_event);
 
+	/*unblock the endtimezone widget*/
+	g_signal_handlers_unblock_matched (priv->end_timezone, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
+
 	gtk_signal_handler_unblock_by_data (GTK_OBJECT (priv->start_timezone),
 					    epage);
 
@@ -2520,7 +2523,8 @@ start_timezone_changed_cb (GtkWidget *wi
 	if (priv->sync_timezones) {
 		zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (priv->start_timezone));
 		priv->updating = TRUE;
-		e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (priv->end_timezone), zone);
+		/*the earlier method caused an infinite recursion*/
+		priv->end_timezone=priv->start_timezone;
 		gtk_widget_show_all (priv->end_timezone);
 		priv->updating = FALSE;
 	}
@@ -2986,6 +2990,9 @@ init_widgets (EventPage *epage)
 
 	/* emit signal when the group is changed */
 	g_signal_connect((priv->source_selector),"changed",G_CALLBACK(field_changed_cb),epage);
+
+	/*call the field_changed_cb when the timezone is changed*/
+	g_signal_connect((priv->start_timezone), "changed",G_CALLBACK (field_changed_cb), epage);
 
 	/* Set the default timezone, so the timezone entry may be hidden. */
 	zone = calendar_config_get_icaltimezone ();
Index: gui/e-timezone-entry.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-timezone-entry.c,v
retrieving revision 1.32
diff -u -p -r1.32 e-timezone-entry.c
--- gui/e-timezone-entry.c	5 Jun 2006 09:38:20 -0000	1.32
+++ gui/e-timezone-entry.c	14 Jul 2006 05:07:27 -0000
@@ -329,10 +329,10 @@ e_timezone_entry_set_entry (ETimezoneEnt
 
 	gtk_entry_set_text (GTK_ENTRY (priv->entry), name_buffer);
 
-	if (!priv->default_zone || (priv->zone != priv->default_zone))
-		gtk_widget_show (priv->entry);
-	else
-		gtk_widget_hide (priv->entry);
+	/* do we need to hide the timezone entry at all? i know this overrules the previous case of hiding the timezone
+	 * entry field when we select the default timezone 
+         */  
+	gtk_widget_show (priv->entry);
 
 	g_free (name_buffer);
 }
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.3065
diff -u -p -r1.3065 ChangeLog
--- ChangeLog	30 Jun 2006 09:46:08 -0000	1.3065
+++ ChangeLog	14 Jul 2006 05:07:45 -0000
@@ -32,6 +32,16 @@
 	Free GSList and its data after calling 
 	e_cal_component_get_attachment_list.
 
+2006-06-17   Arvind <sa.phoenix@gmail.com>
+
+        ** Fix for bug#330633
+	* gui/dialogs/event-page.c : Enabled save button when the timezone
+	  is changed from an existing meeting/appointment
+
+	* gui/e-timezone-entry.c : prevented the shrinking of the timezone
+	field when the timezone is set to the default timezone
+	
+
 2006-06-14  Arvind_evo <sa.phoenix@gmail.com>
 
 	* gui/dialogs/event-page.c : Enabled save button when the group is 
