diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c
index 7bad21025f0d587bfb844533db3a89223f20a2e9..053010a6c04030c8aee3db98976b4a8764030bbe 100644
--- a/eek/eek-renderer.c
+++ b/eek/eek-renderer.c
@@ -608,6 +608,7 @@ eek_renderer_real_render_key_label (EekRenderer *self,
     EekBounds bounds;
     const TextProperty *prop;
     PangoFontDescription *font;
+    PangoLayoutLine *line;
     gdouble scale;
 
     symbol = eek_key_get_symbol_with_fallback (key, 0, 0);
@@ -654,6 +655,9 @@ eek_renderer_real_render_key_label (EekRenderer *self,
     pango_font_description_free (font);
 
     pango_layout_set_text (layout, label, -1);
+    line = pango_layout_get_line (layout, 0);
+    if (line->resolved_dir == PANGO_DIRECTION_RTL)
+        pango_layout_set_alignment (layout, PANGO_ALIGN_RIGHT);
     pango_layout_set_width (layout,
                             PANGO_SCALE * bounds.width * priv->scale * scale);
     if (prop->ellipses)