diff -rup evolution-2.8.1/calendar/gui/e-itip-control.c evolution-2.8.1-GOOD/calendar/gui/e-itip-control.c
--- evolution-2.8.1/calendar/gui/e-itip-control.c	2006-09-30 07:24:36.000000000 +0200
+++ evolution-2.8.1-GOOD/calendar/gui/e-itip-control.c	2006-12-23 17:36:47.000000000 +0100
@@ -1113,8 +1113,8 @@ write_html (EItipControl *itip, const gc
 	g_free (html);
 
 	/* Describe what the user can do */
-	const_html = _("<br> Please review the following information, "
-			"and then select an action from the menu below.");
+	const_html = g_strdup_printf ("<br>", _(" Please review the following information, "
+			"and then select an action from the menu below."));
 	gtk_html_write (GTK_HTML (priv->html), html_stream, const_html, strlen(const_html));
 
 	/* Separator */
@@ -1334,28 +1334,28 @@ show_current_event (EItipControl *itip)
 
 	switch (priv->method) {
 	case ICAL_METHOD_PUBLISH:
-		itip_desc = _("<b>%s</b> has published meeting information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has published meeting information."));
 		itip_title = _("Meeting Information");
 		options = get_publish_options ();
 		show_selector = TRUE;
 		break;
 	case ICAL_METHOD_REQUEST:
 		if (priv->delegator_address != NULL)
-			itip_desc = _("<b>%s</b> requests the presence of %s at a meeting.");
+			itip_desc = g_strdup_printf ("<b>%s</b>", _(" requests the presence of %s at a meeting."));
 		else
-			itip_desc = _("<b>%s</b> requests your presence at a meeting.");
+			itip_desc = g_strdup_printf ("<b>%s</b>", _(" requests your presence at a meeting."));
 		itip_title = _("Meeting Proposal");
 		options = get_request_options ();
 		show_selector = TRUE;
 		break;
 	case ICAL_METHOD_ADD:
 		/* FIXME Whats going on here? */
-		itip_desc = _("<b>%s</b> wishes to add to an existing meeting.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" wishes to add to an existing meeting."));
 		itip_title = _("Meeting Update");
 		options = get_publish_options ();
 		break;
 	case ICAL_METHOD_REFRESH:
-		itip_desc = _("<b>%s</b> wishes to receive the latest meeting information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" wishes to receive the latest meeting information."));
 		itip_title = _("Meeting Update Request");
 		options = get_refresh_options ();
 
@@ -1363,7 +1363,7 @@ show_current_event (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	case ICAL_METHOD_REPLY:
-		itip_desc = _("<b>%s</b> has replied to a meeting request.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has replied to a meeting request."));
 		itip_title = _("Meeting Reply");
 		options = get_reply_options ();
 
@@ -1371,7 +1371,7 @@ show_current_event (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	case ICAL_METHOD_CANCEL:
-		itip_desc = _("<b>%s</b> has canceled a meeting.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has canceled a meeting."));
 		itip_title = _("Meeting Cancelation");
 		/* FIXME priv->current_ecal will always be NULL so the
 		 * user won't see an error message, the OK button will
@@ -1382,7 +1382,7 @@ show_current_event (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	default:
-		itip_desc = _("<b>%s</b> has sent an unintelligible message.");
+		itip_desc = g_strdup_printf("<b>%s</b>", _("has sent an unintelligible message."));
 		itip_title = _("Bad Meeting Message");
 		options = NULL;
 	}
@@ -1410,7 +1410,7 @@ show_current_todo (EItipControl *itip)
 
 	switch (priv->method) {
 	case ICAL_METHOD_PUBLISH:
-		itip_desc = _("<b>%s</b> has published task information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has published task information."));
 		itip_title = _("Task Information");
 		options = get_publish_options ();
 		show_selector = TRUE;
@@ -1418,21 +1418,21 @@ show_current_todo (EItipControl *itip)
 	case ICAL_METHOD_REQUEST:
 		/* FIXME Does this need to handle like events above? */
 		if (priv->delegator_address != NULL)
-			itip_desc = _("<b>%s</b> requests %s to perform a task.");
+			itip_desc = g_strdup_printf ("<b>%s</b>", _(" requests %s to perform a task."));
 		else
-			itip_desc = _("<b>%s</b> requests you perform a task.");
+			itip_desc = g_strdup_printf ("<b>%s</b>", _("requests you perform a task."));
 		itip_title = _("Task Proposal");
 		options = get_request_options ();
 		show_selector = TRUE;
 		break;
 	case ICAL_METHOD_ADD:
 		/* FIXME Whats going on here? */
-		itip_desc = _("<b>%s</b> wishes to add to an existing task.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" wishes to add to an existing task."));
 		itip_title = _("Task Update");
 		options = get_publish_options ();
 		break;
 	case ICAL_METHOD_REFRESH:
-		itip_desc = _("<b>%s</b> wishes to receive the latest task information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" wishes to receive the latest task information."));
 		itip_title = _("Task Update Request");
 		options = get_refresh_options ();
 
@@ -1440,7 +1440,7 @@ show_current_todo (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	case ICAL_METHOD_REPLY:
-		itip_desc = _("<b>%s</b> has replied to a task assignment.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has replied to a task assignment."));
 		itip_title = _("Task Reply");
 		options = get_reply_options ();
 
@@ -1448,7 +1448,7 @@ show_current_todo (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	case ICAL_METHOD_CANCEL:
-		itip_desc = _("<b>%s</b> has canceled a task.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has canceled a task."));
 		itip_title = _("Task Cancelation");
 		/* FIXME priv->current_ecal will always be NULL so the
 		 * user won't see an error message, the OK button will
@@ -1459,7 +1459,7 @@ show_current_todo (EItipControl *itip)
 		adjust_item (itip, priv->comp);
 		break;
 	default:
-		itip_desc = _("<b>%s</b> has sent an unintelligible message.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has sent an unintelligible message."));
 		itip_title = _("Bad Task Message");
 		options = NULL;
 	}
@@ -1484,22 +1484,22 @@ show_current_freebusy (EItipControl *iti
 
 	switch (priv->method) {
 	case ICAL_METHOD_PUBLISH:
-		itip_desc = _("<b>%s</b> has published free/busy information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has published free/busy information."));
 		itip_title = _("Free/Busy Information");
 		options = NULL;
 		break;
 	case ICAL_METHOD_REQUEST:
-		itip_desc = _("<b>%s</b> requests your free/busy information.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" requests your free/busy information."));
 		itip_title = _("Free/Busy Request");
 		options = get_request_fb_options ();
 		break;
 	case ICAL_METHOD_REPLY:
-		itip_desc = _("<b>%s</b> has replied to a free/busy request.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has replied to a free/busy request."));
 		itip_title = _("Free/Busy Reply");
 		options = NULL;
 		break;
 	default:
-		itip_desc = _("<b>%s</b> has sent an unintelligible message.");
+		itip_desc = g_strdup_printf ("<b>%s</b>", _(" has sent an unintelligible message."));
 		itip_title = _("Bad Free/Busy Message");
 		options = NULL;
 	}
diff -rup evolution-2.8.1/composer/e-msg-composer.c evolution-2.8.1-GOOD/composer/e-msg-composer.c
--- evolution-2.8.1/composer/e-msg-composer.c	2006-09-30 07:24:40.000000000 +0200
+++ evolution-2.8.1-GOOD/composer/e-msg-composer.c	2006-12-23 17:08:42.000000000 +0100
@@ -5004,7 +5004,7 @@ e_msg_composer_set_body (EMsgComposer *c
 	EMsgComposerPrivate *p = composer->priv;
 	g_return_if_fail (E_IS_MSG_COMPOSER (composer));
 	
-	set_editor_text (composer, _("<b>(The composer contains a non-text message body, which cannot be edited.)</b>"), -1, FALSE, FALSE);
+	set_editor_text (composer, g_strdup_printf ("<b>%s</b>", _("(The composer contains a non-text message body, which cannot be edited.)")), -1, FALSE, FALSE);
 	e_msg_composer_set_send_html (composer, FALSE);
 	disable_editor (composer);
 	
diff -rup evolution-2.8.1/mail/em-filter-rule.c evolution-2.8.1-GOOD/mail/em-filter-rule.c
--- evolution-2.8.1/mail/em-filter-rule.c	2004-06-17 09:34:49.000000000 +0200
+++ evolution-2.8.1-GOOD/mail/em-filter-rule.c	2006-12-23 17:10:54.000000000 +0100
@@ -485,7 +485,7 @@ get_widget(FilterRule *fr, RuleContext *
         widget = FILTER_RULE_CLASS(parent_class)->get_widget(fr, rc);
 	
 	/* and now for the action area */
-	label = gtk_label_new(_("<b>Then</b>"));
+	label = g_strdup_printf ("<b>%s</b>", _(gtk_label_new(_("Then"))));
 	gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
 	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
 	gtk_box_pack_start(GTK_BOX(widget), label, FALSE, FALSE, 0);
diff -rup evolution-2.8.1/mail/em-format-html.c evolution-2.8.1-GOOD/mail/em-format-html.c
--- evolution-2.8.1/mail/em-format-html.c	2006-09-30 07:24:42.000000000 +0200
+++ evolution-2.8.1-GOOD/mail/em-format-html.c	2006-12-23 17:14:12.000000000 +0100
@@ -1688,10 +1688,10 @@ efh_format_header(EMFormat *emf, CamelSt
 			msg_offset += (local.tm_hour * 60) + local.tm_min;
 			if (msg_offset >= (24 * 60) || msg_offset < 0) {
 				/* translators: strftime format for local time equivalent in Date header display, with day */
-				e_utf8_strftime(buf, sizeof(buf), _("<I> (%a, %R %Z)</I>"), &local);
+				e_utf8_strftime(buf, sizeof(buf), g_strdup_printf ("<I>%s</I>", _("(%a, %R %Z)")), &local);
 			} else {
 				/* translators: strftime format for local time equivalent in Date header display, without day */
-				e_utf8_strftime(buf, sizeof(buf), _("<I> (%R %Z)</I>"), &local);
+				e_utf8_strftime(buf, sizeof(buf), g_strdup_printf ("<I>%s</I>", _("(%R %Z)")), &local);
 			}
 			
 			html = camel_text_to_html(txt, efh->text_html_flags, 0);
diff -rup evolution-2.8.1/plugins/groupwise-features/junk-mail-settings.c evolution-2.8.1-GOOD/plugins/groupwise-features/junk-mail-settings.c
--- evolution-2.8.1/plugins/groupwise-features/junk-mail-settings.c	2006-01-06 07:57:13.000000000 +0100
+++ evolution-2.8.1-GOOD/plugins/groupwise-features/junk-mail-settings.c	2006-12-23 17:20:47.000000000 +0100
@@ -87,7 +87,7 @@ junk_mail_settings (EPopup *ep, EPopupIt
 	gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *) dialog)->vbox, 12);
 	box = gtk_vbox_new (FALSE, 6);
 	w = gtk_label_new ("");		
-	gtk_label_set_markup (GTK_LABEL (w), _("<b>Junk Mail Settings</b>"));
+	gtk_label_set_markup (GTK_LABEL (w), g_strdup_printf ("<b>%s</b>", _("Junk Mail Settings"));
 	gtk_box_pack_start ((GtkBox *) box, w, FALSE, FALSE, 6);
 
 	junk_tab = junk_settings_new (cnc);
diff -rup evolution-2.8.1/plugins/itip-formatter/itip-view.c evolution-2.8.1-GOOD/plugins/itip-formatter/itip-view.c
--- evolution-2.8.1/plugins/itip-formatter/itip-view.c	2006-09-30 07:24:42.000000000 +0200
+++ evolution-2.8.1-GOOD/plugins/itip-formatter/itip-view.c	2006-12-23 17:30:43.000000000 +0100
@@ -345,48 +345,48 @@ set_calendar_sender_text (ItipView *view
 	switch (priv->mode) {
 	case ITIP_VIEW_MODE_PUBLISH:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has published the following meeting information:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has published the following meeting information:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has published the following meeting information:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has published the following meeting information:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_REQUEST:
 		/* FIXME is the delegator stuff handled correctly here? */
 		if (priv->delegator) {
-			sender = g_strdup_printf (_("<b>%s</b> has delegated the following meeting to you:"), priv->delegator);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has delegated the following meeting to you:"), priv->delegator);
 		} else {
 			if (priv->sentby)
-				sender = g_strdup_printf (_("<b>%s</b> through %s requests your presence at the following meeting:"), organizer, priv->sentby);
+				sender = g_strdup_printf ("<b>%s</b>", _(" through %s requests your presence at the following meeting:"), organizer, priv->sentby);
 			else
-				sender = g_strdup_printf (_("<b>%s</b> requests your presence at the following meeting:"), organizer);
+				sender = g_strdup_printf ("<b>%s</b>", _(" requests your presence at the following meeting:"), organizer);
 		}
 		break;
 	case ITIP_VIEW_MODE_ADD:
 		/* FIXME What text for this? */
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s wishes to add to an existing meeting:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s wishes to add to an existing meeting:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> wishes to add to an existing meeting:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" wishes to add to an existing meeting:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_REFRESH:
-		sender = g_strdup_printf (_("<b>%s</b> wishes to receive the latest information for the following meeting:"), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" wishes to receive the latest information for the following meeting:"), attendee);
 		break;
 	case ITIP_VIEW_MODE_REPLY:
-		sender = g_strdup_printf (_("<b>%s</b> has sent back the following meeting response:"), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" has sent back the following meeting response:"), attendee);
 		break;
 	case ITIP_VIEW_MODE_CANCEL:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has canceled the following meeting:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has canceled the following meeting:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has canceled the following meeting."), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has canceled the following meeting."), organizer);
 		break;
 	case ITIP_VIEW_MODE_COUNTER:
-		sender = g_strdup_printf (_("<b>%s</b> has proposed the following meeting changes."), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" has proposed the following meeting changes."), attendee);
 		break;
 	case ITIP_VIEW_MODE_DECLINECOUNTER:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has declined the following meeting changes:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has declined the following meeting changes:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has declined the following meeting changes."), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has declined the following meeting changes."), organizer);
 		break;
 	default:
 		break;
@@ -413,48 +413,48 @@ set_tasklist_sender_text (ItipView *view
 	switch (priv->mode) {
 	case ITIP_VIEW_MODE_PUBLISH:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has published the following task:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has published the following task:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has published the following task:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has published the following task:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_REQUEST:
 		/* FIXME is the delegator stuff handled correctly here? */
 		if (priv->delegator) {
-			sender = g_strdup_printf (_("<b>%s</b> requests the assignment of %s to the following task:"), organizer, priv->delegator);
+			sender = g_strdup_printf ("<b>%s</b>", _(" requests the assignment of %s to the following task:"), organizer, priv->delegator);
 		} else {
 			if (priv->sentby)
-				sender = g_strdup_printf (_("<b>%s</b> through %s has assigned you a task:"), organizer, priv->sentby);
+				sender = g_strdup_printf ("<b>%s</b>", _(" through %s has assigned you a task:"), organizer, priv->sentby);
 			else
-				sender = g_strdup_printf (_("<b>%s</b> has assigned you a task:"), organizer);
+				sender = g_strdup_printf ("<b>%s</b>", _(" has assigned you a task:"), organizer);
 		}
 		break;
 	case ITIP_VIEW_MODE_ADD:
 		/* FIXME What text for this? */
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s wishes to add to an existing task:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s wishes to add to an existing task:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> wishes to add to an existing task:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" wishes to add to an existing task:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_REFRESH:
-		sender = g_strdup_printf (_("<b>%s</b> wishes to receive the latest information for the following assigned task:"), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" wishes to receive the latest information for the following assigned task:"), attendee);
 		break;
 	case ITIP_VIEW_MODE_REPLY:
-		sender = g_strdup_printf (_("<b>%s</b> has sent back the following assigned task response:"), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" has sent back the following assigned task response:"), attendee);
 		break;
 	case ITIP_VIEW_MODE_CANCEL:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has canceled the following assigned task:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has canceled the following assigned task:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has canceled the following assigned task:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has canceled the following assigned task:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_COUNTER:
-		sender = g_strdup_printf (_("<b>%s</b> has proposed the following task assignment changes:"), attendee);
+		sender = g_strdup_printf ("<b>%s</b>", _(" has proposed the following task assignment changes:"), attendee);
 		break;
 	case ITIP_VIEW_MODE_DECLINECOUNTER:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has declined the following assigned task:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has declined the following assigned task:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has declined the following assigned task:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has declined the following assigned task:"), organizer);
 		break;
 	default:
 		break;
@@ -481,22 +481,22 @@ set_journal_sender_text (ItipView *view)
 	switch (priv->mode) {
 	case ITIP_VIEW_MODE_PUBLISH:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has published the following memo:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has published the following memo:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has published the following memo:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has published the following memo:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_ADD:
 		/* FIXME What text for this? */
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s wishes to add to an existing memo:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s wishes to add to an existing memo:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> wishes to add to an existing memo:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" wishes to add to an existing memo:"), organizer);
 		break;
 	case ITIP_VIEW_MODE_CANCEL:
 		if (priv->sentby)
-			sender = g_strdup_printf (_("<b>%s</b> through %s has canceled the following shared memo:"), organizer, priv->sentby);
+			sender = g_strdup_printf ("<b>%s</b>", _(" through %s has canceled the following shared memo:"), organizer, priv->sentby);
 		else
-			sender = g_strdup_printf (_("<b>%s</b> has canceled the following shared memo:"), organizer);
+			sender = g_strdup_printf ("<b>%s</b>", _(" has canceled the following shared memo:"), organizer);
 		break;
 	default:
 		break;
