upstream patch

--- src/translate-session.c.orig	Mon Nov 14 16:06:02 2011
+++ src/translate-session.c	Mon Nov 14 16:06:28 2011
@@ -703,7 +703,14 @@ translate_session_translate_thread (gpointer data, gpo
 	  GError *tmp_err = NULL;
 
 	  g_mutex_lock(info->mutex);
-	  ret = info->err != NULL;
+	  if (info->err)
+	    {
+	      ret = TRUE;
+	      if (info->progress_cond)
+		g_cond_signal(info->progress_cond);
+	    }
+	  else
+	    ret = FALSE;
 	  g_mutex_unlock(info->mutex);
 
 	  if (ret)
@@ -728,6 +735,9 @@ translate_session_translate_thread (gpointer data, gpo
 		  else
 		    g_propagate_error(&info->err, tmp_err);
 
+		  if (info->progress_cond)
+		    g_cond_signal(info->progress_cond);
+
 		  g_mutex_unlock(info->mutex);
 
 		  return;
@@ -759,6 +769,9 @@ translate_session_translate_thread (gpointer data, gpo
 	info->err = g_error_new(TRANSLATE_SESSION_ERROR,
 				TRANSLATE_SESSION_ERROR_NO_SERVICE,
 				_("no service could translate chunk"));
+
+      if (info->progress_cond)
+	g_cond_signal(info->progress_cond);
     }
   
   g_mutex_unlock(info->mutex);
