Index: applets/clock/calendar-window.c
===================================================================
--- applets/clock/calendar-window.c	(revision 10682)
+++ applets/clock/calendar-window.c	(working copy)
@@ -60,6 +60,9 @@
 #define KEY_BIRTHDAYS_EXPANDED    "expand_birthdays"
 #define KEY_TASKS_EXPANDED        "expand_tasks"
 #define KEY_WEATHER_EXPANDED      "expand_weather"
+
+#define KEY_CALENDAR_PROGRAM      "/desktop/gnome/applications/calendar/exec"
+#define FALLBACK_CALENDAR         "evolution"
 #endif
 
 struct _CalendarWindowPrivate {
@@ -121,29 +124,38 @@
 #ifdef HAVE_LIBECAL
 
 static void
-clock_launch_evolution (CalendarWindow *calwin,
+clock_launch_calendar_program (CalendarWindow *calwin,
 			const char     *argument)
 {
 	char      *command_line;
+	char      *program;
 	GdkScreen *screen;
 	GError    *error;
 
-	command_line = g_find_program_in_path ("evolution");
-	if (command_line == NULL)
+	program = gconf_client_get_string (calwin->priv->gconfclient, 
+					  KEY_CALENDAR_PROGRAM, NULL);
+
+	if (program == NULL)
+		program = g_strdup(FALLBACK_CALENDAR);
+	command_line = g_find_program_in_path (program);
+	if (command_line == NULL) {
+		g_free(program);
 		return;
+	}
 	g_free (command_line);
 
 	if (argument)
-		command_line = g_strdup_printf ("evolution %s", argument);
+		command_line = g_strdup_printf ("%s %s", program, argument);
 	else
-		command_line = g_strdup ("evolution");
+		command_line = g_strdup (program);
+	g_free (program);
 
 	screen = gtk_widget_get_screen (calwin->priv->calendar);
 	error = NULL;
 
 	if (!gdk_spawn_command_line_on_screen (screen, command_line,
 					       &error)) {
-		g_printerr ("Cannot launch evolution: %s\n", error->message);
+		g_printerr ("Cannot launch calendar program: %s\n", error->message);
 		g_error_free (error);
 	}
 
@@ -485,7 +497,7 @@
 
 	argument = g_strdup_printf ("task:%s", uid);
 
-	clock_launch_evolution (calwin, argument);
+	clock_launch_calendar_program (calwin, argument);
 
 	g_free (argument);
         g_free (uid);
@@ -1105,7 +1117,7 @@
 	argument = g_strdup_printf ("calendar:///?startdate=%.4d%.2d%.2d",
 				    year, month + 1, day);
 
-	clock_launch_evolution (calwin, argument);
+	clock_launch_calendar_program (calwin, argument);
 
 	g_free (argument);
 }
