diff --git a/configure.ac b/configure.ac
index dcf6616..9ad131c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,7 +31,7 @@ AM_GCONF_SOURCE_2
 # EDS's libical now has an #ifndef and warns about memory management
 AC_DEFINE_UNQUOTED(HANDLE_LIBICAL_MEMORY,, [Handle libical memory])
 
-PKG_CHECK_MODULES(EVOLUTION_WEBCAL, glib-2.0 >= 2.8 gtk+-2.0 >= 2.18 libecal-1.2 >= 1.10.0 libsoup-2.4 >= 2.3.0)
+PKG_CHECK_MODULES(EVOLUTION_WEBCAL, glib-2.0 >= 2.8 gtk+-3.0 >= 3.0 libecal-1.2 >= 1.10.0 libsoup-2.4 >= 2.3.0)
 AC_SUBST(EVOLUTION_WEBCAL_CFLAGS)
 AC_SUBST(EVOLUTION_WEBCAL_LIBS)
 
diff --git a/src/evolution-webcal-main.c b/src/evolution-webcal-main.c
index 80b1f39..f675686 100644
--- a/src/evolution-webcal-main.c
+++ b/src/evolution-webcal-main.c
@@ -80,9 +80,9 @@ static void e_webcal_load (const gchar * body, const gchar * uri)
       
       if (propname != NULL) {
 	if (!strcmp (propname, "X-WR-CALNAME")) {
-	  name = icalproperty_get_value_as_string (prop);
+	  name = icalproperty_get_value_as_string_r (prop);
 	} else if (!strcmp (propname, "X-WR-CALDESC")) {
-	  desc = icalproperty_get_value_as_string (prop);
+	  desc = icalproperty_get_value_as_string_r (prop);
 	}
       }
       icalproperty_free (prop);
@@ -96,10 +96,8 @@ static void e_webcal_load (const gchar * body, const gchar * uri)
 
   e_webcal_query_user (name, desc, uri, has_events, has_tasks);
 
-#if LIBICAL_MEMFIXES
   g_free (name);
   g_free (desc);
-#endif
 
   gtk_main_quit ();
 }
diff --git a/src/evolution-webcal-notify.c b/src/evolution-webcal-notify.c
index 450982a..8ad8eed 100644
--- a/src/evolution-webcal-notify.c
+++ b/src/evolution-webcal-notify.c
@@ -134,13 +134,11 @@ void e_webcal_display_error (const gchar * title, const gchar * message,
 
   gtk_widget_realize (dialog);
 
-  gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
   gtk_dialog_add_buttons (GTK_DIALOG (dialog),
 			  GTK_STOCK_OK, GTK_RESPONSE_OK,
 			  NULL);
 
-  pixbuf = gtk_widget_render_icon (dialog, GTK_STOCK_DIALOG_ERROR,
-				   GTK_ICON_SIZE_DIALOG, "error-dialog");
+  pixbuf = gtk_widget_render_icon_pixbuf (dialog, GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG);
   gtk_window_set_icon (GTK_WINDOW (dialog), pixbuf);
   g_object_unref (pixbuf);
 
@@ -339,7 +337,6 @@ void e_webcal_query_user (const gchar * name, const gchar * desc,
   dialog->dialog = gtk_dialog_new ();
   gtk_window_set_title (GTK_WINDOW (dialog->dialog),
 			_("Subscribe to Calendar"));
-  gtk_dialog_set_has_separator (GTK_DIALOG (dialog->dialog), FALSE);
   gtk_window_set_default_size (GTK_WINDOW (dialog->dialog), 376, 144);
 
   gtk_window_set_default_icon_name ("x-office-calendar");
@@ -466,14 +463,14 @@ void e_webcal_query_user (const gchar * name, const gchar * desc,
 
   gtk_label_set_mnemonic_widget (GTK_LABEL (rlabel), tspinb);
 
-  combo = gtk_combo_box_new_text ();
+  combo = gtk_combo_box_text_new ();
   gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
   gtk_widget_show (combo);
 
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Days"));
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Hours"));
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Minutes"));
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), _("Weeks"));
+  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Days"));
+  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Hours"));
+  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Minutes"));
+  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Weeks"));
 
   gtk_combo_box_set_active (GTK_COMBO_BOX (combo),
                            E_ICALSHARE_TIMEOUT_HOURS);
