diff --git a/src/mstyle.c b/src/mstyle.c
index 24342ec..569e201 100644
--- a/src/mstyle.c
+++ b/src/mstyle.c
@@ -1733,8 +1733,28 @@ gnm_style_get_pango_height (GnmStyle const *style,
 	if (style->pango_attrs_height == -1) {
 		int h;
 		PangoLayout *layout = pango_layout_new (context);
+		GOFormat const *fmt;
+		gboolean requires_translation = FALSE;
+
+		fmt = gnm_style_get_format (style);
+		if (!go_format_is_general (fmt)) {
+			GOFormatDetails details;
+			gboolean exact;
+			go_format_get_details (fmt, &details, &exact);
+			if (exact && details.family == GO_FORMAT_SCIENTIFIC && 
+			    details.use_markup) {
+				PangoAttribute *a 
+					= go_pango_attr_superscript_new (TRUE);
+				a->start_index = 12;
+				a->end_index = 15;
+				pango_attr_list_insert (attrs, a);
+				requires_translation = TRUE;
+			}
+		}
 		pango_layout_set_attributes (layout, attrs);
 		pango_layout_set_text (layout, "+1.23456789E-01", -1);
+		if (requires_translation)
+			go_pango_translate_layout (layout);
 		pango_layout_get_pixel_size (layout, NULL, &h);
 		g_object_unref (layout);
 		((GnmStyle *)style)->pango_attrs_height = h;
