Index: servers/exchange/lib/e2k-context.c
===================================================================
--- servers/exchange/lib/e2k-context.c	(revision 8765)
+++ servers/exchange/lib/e2k-context.c	(working copy)
@@ -547,7 +547,7 @@
 	doc = e2k_parse_html (response->data, response->length);
 	soup_buffer_free (response);
 
-	node = e2k_xml_find (doc->children, "form");
+	node = doc ? e2k_xml_find (doc->children, "form") : NULL;
 	if (!node)
 		goto failed;
 
Index: calendar/backends/file/e-cal-backend-file.c
===================================================================
--- calendar/backends/file/e-cal-backend-file.c	(revision 8765)
+++ calendar/backends/file/e-cal-backend-file.c	(working copy)
@@ -38,6 +38,7 @@
 #include <libecal/e-cal-recur.h>
 #include <libecal/e-cal-time-util.h>
 #include <libecal/e-cal-util.h>
+#include <libecal/e-cal-check-timezones.h>
 #include <libedata-cal/e-cal-backend-util.h>
 #include <libedata-cal/e-cal-backend-sexp.h>
 #include "e-cal-backend-file-events.h"
@@ -2598,6 +2599,27 @@
 
 	g_list_free (del_comps);
 
+        /* check and patch timezones */
+        {
+            GError *error = NULL;
+            if (!e_cal_check_timezones(toplevel_comp,
+                                       NULL,
+                                       e_cal_tzlookup_icomp,
+                                       priv->icalcomp,
+                                       &error)) {
+                /*
+                 * This makes assumptions about what kind of
+                 * errors can occur inside e_cal_check_timezones().
+                 * We control it, so that should be safe, but
+                 * is the code really identical with the calendar
+                 * status?
+                 */
+                status = error->code;
+                g_clear_error(&error);
+                goto error;
+            }
+        }
+
 	/* Merge the iCalendar components with our existing VCALENDAR,
 	   resolving any conflicting TZIDs. */
 	icalcomponent_merge_component (priv->icalcomp, toplevel_comp);
Index: calendar/libecal/Makefile.am
===================================================================
--- calendar/libecal/Makefile.am	(revision 8765)
+++ calendar/libecal/Makefile.am	(working copy)
@@ -48,6 +48,7 @@
 	e-cal-listener.h	\
 	e-cal-recur.c		\
 	e-cal-time-util.c	\
+        e-cal-check-timezones.c \
 	e-cal-util.c		\
 	e-cal-view.c		\
 	e-cal-view-listener.c	\
@@ -71,6 +72,7 @@
 	e-cal-component.h	\
 	e-cal-recur.h		\
 	e-cal-time-util.h	\
+        e-cal-check-timezones.h \
 	e-cal-types.h		\
 	e-cal-util.h		\
 	e-cal-view.h
