diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index e1e1ca9..178c9ff 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -414,8 +414,14 @@
 
     @Override
     public String toString() {
-        return String.format("%s/%s %d,%d %dx%d %s/%s/%s",
-                Keyboard.printableCode(mCode), mLabel, mX, mY, mWidth, mHeight, mHintLabel,
+        final String label;
+        if (StringUtils.codePointCount(mLabel) == 1 && mLabel.codePointAt(0) == mCode) {
+            label = "";
+        } else {
+            label = "/" + mLabel;
+        }
+        return String.format("%s%s %d,%d %dx%d %s/%s/%s",
+                Keyboard.printableCode(mCode), label, mX, mY, mWidth, mHeight, mHintLabel,
                 KeyboardIconsSet.getIconName(mIconId), backgroundName(mBackgroundType));
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index 5326120..94a7b82 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -84,6 +84,19 @@
             }
             mIconId = getIconId(moreKeySpec);
         }
+
+        @Override
+        public String toString() {
+            final String label = (mIconId == KeyboardIconsSet.ICON_UNDEFINED ? mLabel
+                    : PREFIX_ICON + KeyboardIconsSet.getIconName(mIconId));
+            final String output = (mCode == Keyboard.CODE_OUTPUT_TEXT ? mOutputText
+                    : Keyboard.printableCode(mCode));
+            if (StringUtils.codePointCount(label) == 1 && label.codePointAt(0) == mCode) {
+                return output;
+            } else {
+                return label + "|" + output;
+            }
+        }
     }
 
     private KeySpecParser() {
