diff --git a/modules/calendar/e-cal-shell-backend.c b/modules/calendar/e-cal-shell-backend.c
index 6541863..399a5ea 100644
--- a/modules/calendar/e-cal-shell-backend.c
+++ b/modules/calendar/e-cal-shell-backend.c
@@ -558,7 +558,7 @@ cal_shell_backend_handle_uri_cb (EShellBackend *shell_backend,
 
 		header = (gchar *) cp;
 		header[header_len] = '\0';
-		cp += header_len + 2;
+		cp += header_len + 1;
 
 		content_len = strcspn (cp, "&");
 
@@ -579,10 +579,10 @@ cal_shell_backend_handle_uri_cb (EShellBackend *shell_backend,
 			comp_rid = g_strdup (content);
 		g_free (content);
 
-		cp += content_len + 1;
+		cp += content_len;
 		if (*cp == '&') {
 			cp++;
-			if (strcmp (cp, "amp;") == 0)
+			if (strncmp (cp, "amp;", 4) == 0)
 				cp += 4;
 		}
 	}
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index b7ac7be..687dc26 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -2521,7 +2521,7 @@ idle_open_cb (gpointer data)
 	start = isodate_from_time_t (pitip->start_time);
 	end = isodate_from_time_t (pitip->end_time);
 	m = mail_msg_new (&open_calendar_info);
-	m->command = g_strdup_printf ("evolution \"calendar:///?startdate=&%s&enddate=&%s\"", start, end);
+	m->command = g_strdup_printf ("evolution \"calendar:///?startdate=%s&enddate=%s\"", start, end);
 	mail_msg_slow_ordered_push (m);
 
 	g_free (start);
