Index: gtk.c
===================================================================
--- gtk.c	(revision 1709)
+++ gtk.c	(working copy)
@@ -2269,10 +2269,42 @@
 }
 
 
+/* Replace certain characters in the calculator display with better ones:
+ * See bug #347630 for more details.
+ */
+
 void
+adjust_display(char *dest, char *src)
+{
+    char *srcp, *dstp;
+
+    srcp = src;
+    dstp = dest;
+    while (*srcp != 0) {
+        switch (*srcp) {
+            case '-': *dstp++ = '\342';      /* U+2212 minus sign. */
+                      *dstp++ = '\210';
+                      *dstp++ = '\222';
+                      break;
+            case '*': *dstp++ = '\303';      /* U+00D7 multiplication sign. */
+                      *dstp++ = '\227';
+                      break;
+            default:  *dstp++ = *srcp;
+        }
+        srcp++;
+    }
+    *dstp = '\0';
+}
+
+
+void
 insert_to_cursor(char *text)
 {
+    char localized[MAX_LOCALIZED];
     GtkTextBuffer *buffer = NULL;
+
+    adjust_display(localized, text);
+    text = localized;
     buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(X->display_item));
     gtk_text_buffer_insert_at_cursor(buffer,
                                      text,
