diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c
index b7b56eb..683160e 100644
--- a/calendar/gui/e-cal-model.c
+++ b/calendar/gui/e-cal-model.c
@@ -1619,11 +1619,15 @@ ecm_get_color_for_component (ECalModel *model,
 
 	g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL);
 
+	if (comp_data->color)
+		return comp_data->color;
+
 	source = e_client_get_source (E_CLIENT (comp_data->client));
 	color_spec = e_source_peek_color_spec (source);
 	if (color_spec != NULL) {
 		g_free (comp_data->color);
 		comp_data->color = g_strdup (color_spec);
+		printf ("%s: assigning %p source's color %s\n", __FUNCTION__, source, comp_data->color);
 		return comp_data->color;
 	}
 
@@ -1639,7 +1643,10 @@ ecm_get_color_for_component (ECalModel *model,
 			if (!strcmp ((const gchar *) l->data,
 				     e_client_get_uri (E_CLIENT (comp_data->client))))
 			{
-				return assigned_colors[i].color;
+				comp_data->color = g_strdup (assigned_colors[i].color);
+
+				printf ("%s: using previously assigned color for source %p, color %s\n", __FUNCTION__, source, comp_data->color);
+				return comp_data->color;
 			}
 		}
 	}
@@ -1648,7 +1655,10 @@ ecm_get_color_for_component (ECalModel *model,
 	assigned_colors[first_empty].uris = g_list_append (assigned_colors[first_empty].uris,
 							   g_strdup (e_client_get_uri (E_CLIENT (comp_data->client))));
 
-	return assigned_colors[first_empty].color;
+	comp_data->color = g_strdup (assigned_colors[first_empty].color);
+	printf ("%s: assigning new color for source %p, color %s\n", __FUNCTION__, source, comp_data->color);
+
+	return comp_data->color;
 }
 
 gboolean
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c
index c379f2a..3cc05d9 100644
--- a/calendar/gui/e-day-view-main-item.c
+++ b/calendar/gui/e-day-view-main-item.c
@@ -259,6 +259,9 @@ day_view_main_item_draw_day_event (EDayViewMainItem *main_item,
 		red = bg_color.red;
 		green = bg_color.green;
 		blue = bg_color.blue;
+		printf ("%s: using %04x-%04x-%04x for '%s' (source:%p col:'%s')\n", __FUNCTION__, red, green, blue, icalcomponent_get_summary (event->comp_data->icalcomp), e_client_get_source ((EClient *)event->comp_data->client), e_source_peek_color_spec (e_client_get_source ((EClient *)event->comp_data->client)));
+	} else {
+		printf ("%s: Failed to parse color for the component, str:'%s'\n", __FUNCTION__, e_cal_model_get_color_for_component (e_calendar_view_get_model (E_CALENDAR_VIEW (day_view)), event->comp_data));
 	}
 
 	is_editing = day_view->editing_event_day == day && day_view->editing_event_num == event_num;
