diff --git a/calendar/gui/print.c b/calendar/gui/print.c
index eced381..6dcba4d 100644
--- a/calendar/gui/print.c
+++ b/calendar/gui/print.c
@@ -336,7 +336,7 @@ print_border_with_triangles (GtkPrintContext *pc,
 	}
 
 	/* Draw the outline, if desired. */
-	if (line_width >= -EPSILON) {
+	if (line_width >= EPSILON) {
 
 		cr = gtk_print_context_get_cairo_context (pc);
 		cairo_move_to (cr, x1, y1);
@@ -435,8 +435,8 @@ print_text (GtkPrintContext *context, PangoFontDescription *desc,
 
 	/* Set a clipping rectangle. */
 	cairo_move_to (cr, x1, y1);
-	cairo_rectangle (cr, x1, y1, x2, y2);
-	cairo_clip (cr);
+	cairo_rectangle (cr, x1, y1, x2 - x1, 2 * (y2 - y1));
+	cairo_clip (cr);    
 
 	cairo_new_path (cr);
 	cairo_set_source_rgb (cr, 0, 0, 0);
@@ -1390,7 +1390,7 @@ print_is_one_day_week_event (EWeekViewEvent *event,
 static void
 print_week_long_event (GtkPrintContext *context, PangoFontDescription *font,
 		       struct psinfo *psi,
-		       double x1, double x2, double y1, double y2,
+		       double x1, double x2, double y1, double row_height,
 		       EWeekViewEvent *event, EWeekViewEventSpan *span,
 		       gchar *text, double red, double green, double blue)
 {
@@ -1408,7 +1408,7 @@ print_week_long_event (GtkPrintContext *context, PangoFontDescription *font,
 	if (event->end > psi->day_starts[span->start_day + span->num_days])
 		right_triangle_width = 4;
 
-	 print_border_with_triangles (context, x1, x2, y1, y2 + 4, 0.5, red, green, blue,
+    print_border_with_triangles (context, x1, x2, y1, y1 + row_height, 0.0, red, green, blue,
 				     left_triangle_width,
 				     right_triangle_width);
 
@@ -1427,7 +1427,7 @@ print_week_long_event (GtkPrintContext *context, PangoFontDescription *font,
 				    buffer, sizeof (buffer));
 
 		x1 += 4;
-		x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y2);
+		x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y1 + row_height * 0.5);
 	}
 
 	/* If the event ends before the end of the last day being printed,
@@ -1445,19 +1445,19 @@ print_week_long_event (GtkPrintContext *context, PangoFontDescription *font,
 				    buffer, sizeof (buffer));
 
 		x2 -= 4;
-		x2 -= print_text_size (context, buffer, PANGO_ALIGN_RIGHT, x1, x2, y1, y2);
+		x2 -= print_text_size (context, buffer, PANGO_ALIGN_RIGHT, x1, x2, y1, y1 + row_height * 0.5);
 	}
 
 	x1 += 4;
 	x2 -= 4;
-	print_text_size (context, text, PANGO_ALIGN_CENTER, x1, x2, y1, y2);
+	print_text_size (context, text, PANGO_ALIGN_CENTER, x1, x2, y1, y1 + row_height * 0.5);
 }
 
 
 static void
 print_week_day_event (GtkPrintContext *context, PangoFontDescription *font,
 		      struct psinfo *psi,
-		      double x1, double x2, double y1, double y2,
+		      double x1, double x2, double y1, double row_height,
 		      EWeekViewEvent *event, EWeekViewEventSpan *span,
 		      gchar *text, double red, double green, double blue)
 {
@@ -1474,9 +1474,8 @@ print_week_day_event (GtkPrintContext *context, PangoFontDescription *font,
 
 	e_time_format_time (&date_tm, psi->use_24_hour_format, FALSE,
 			    buffer, sizeof (buffer));
-	print_rectangle (context, x1, y1, (x2 + 6) - x1, (y2 + 4) - y1, red, green, blue);
-	x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y2 + 3 ) + 4;
-	print_text_size (context, text, PANGO_ALIGN_LEFT, x1, x2, y1, y2 + 3);
+	print_rectangle (context, x1, y1, x2 - x1, row_height, red, green, blue);
+	x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y1 + row_height*0.5) + 4;
 
 	if (psi->weeks_shown <= 2) {
 		date_tm.tm_hour = event->end_minute / 60;
@@ -1485,11 +1484,11 @@ print_week_day_event (GtkPrintContext *context, PangoFontDescription *font,
 		e_time_format_time (&date_tm, psi->use_24_hour_format, FALSE,
 				    buffer, sizeof (buffer));
 
-		print_rectangle (context, x1, y1, (x2 + 6) - x1, (y2 + 4) - y1, red, green, blue);
-		x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y2 + 3) + 4;
+		print_rectangle (context, x1, y1, x2 - x1, row_height, red, green, blue);
+		x1 += print_text_size (context, buffer, PANGO_ALIGN_LEFT, x1, x2, y1, y1 + row_height*0.5) + 4;
 	}
 
-	print_text_size (context, text, PANGO_ALIGN_LEFT, x1, x2, y1, y2 + 3);
+	print_text_size (context, text, PANGO_ALIGN_LEFT, x1, x2, y1, y1 + row_height*0.5);
 }
 
 
@@ -1547,12 +1546,11 @@ print_week_event (GtkPrintContext *context, PangoFontDescription *font,
 			}
 
 			x1 = left + start_x * cell_width + 6;
-			x2 = left + (end_x + 1) * cell_width - 16;
+			x2 = left + (end_x + 1) * cell_width - 6;
 			y1 = top + start_y * cell_height
 				 + psi->header_row_height
-				 + span->row * psi->row_height;
-			y2 = y1 + psi->row_height * 0.5;
-
+				 + span->row * (psi->row_height + 2);
+            y2 = y1 + psi->row_height * 0.5;
 
 			red = .9;
 			green = .9;
@@ -1561,11 +1559,11 @@ print_week_event (GtkPrintContext *context, PangoFontDescription *font,
 			if (print_is_one_day_week_event (event, span,
 							 psi->day_starts)) {
 				print_week_day_event (context, font, psi,
-						      x1, x2, y1, y2,
+						      x1, x2, y1, psi->row_height,
 						      event, span, text, red, green, blue);
 			} else {
 				print_week_long_event (context, font, psi,
-						       x1, x2, y1, y2,
+						       x1, x2, y1, psi->row_height,
 						       event, span, text, red, green, blue);
 			}
 		} else {
@@ -1579,10 +1577,9 @@ print_week_event (GtkPrintContext *context, PangoFontDescription *font,
 				 psi->compress_weekend,
 				 &start_x, &start_y, &start_h);
 
-			x1 = left + (start_x + 1) * cell_width - 16;
 			y1 = top + start_y * cell_height
 				 + psi->header_row_height
-				 + psi->rows_per_cell * psi->row_height;
+				 + psi->rows_per_cell * (psi->row_height + 2);
 
 			if (span->row >= psi->rows_per_compressed_cell && psi->compress_weekend) {
 				gint end_day_of_week = (psi->display_start_weekday + span->start_day) % 7;
@@ -1604,6 +1601,8 @@ print_week_event (GtkPrintContext *context, PangoFontDescription *font,
 				pixbuf = gdk_pixbuf_new_from_xpm_data (xpm);
 			}
 
+            x1 = left + (start_x + 1) * cell_width - 6 - gdk_pixbuf_get_width(pixbuf)*0.5;
+
 			cairo_save (cr);
 			cairo_scale (cr, 0.5, 0.5);
 			gdk_cairo_set_source_pixbuf (cr, pixbuf, x1 * 2.0, y1 * 2.0);
@@ -1810,7 +1809,7 @@ print_week_summary (GtkPrintContext *context, GnomeCalendar *gcal,
 
 	/* Calculate how many rows we can fit into each type of cell. */
 	psi.rows_per_cell = ((cell_height * 2) - psi.header_row_height)
-		/ psi.row_height;
+		/ (psi.row_height + 2);
 	psi.rows_per_compressed_cell = (cell_height - psi.header_row_height)
 		/ psi.row_height;
 
