diff --git a/engine/engine.py b/engine/engine.py
index e1024fe..f31fbd5 100644
--- a/engine/engine.py
+++ b/engine/engine.py
@@ -1108,10 +1108,15 @@ class Engine(ibus.EngineBase):
         pass
 
     def __cmd_cancel(self, keyval, state):
-        if not self.__preedit_ja_string.is_empty() and \
-                self.__convert_mode == CONV_MODE_OFF:
+        if self.__preedit_ja_string.is_empty():
+            return False
+
+        if self.__convert_mode == CONV_MODE_OFF:
             return self.__on_key_escape()
-        return False
+        else:
+            self.__end_convert()
+            self.__invalidate()
+            return True
 
     def __cmd_cancel_all(self, keyval, state):
         return self.__cmd_cancel(keyval, state)
diff --git a/engine/tables.py b/engine/tables.py
index bd77920..dcccf69 100644
--- a/engine/tables.py
+++ b/engine/tables.py
@@ -21,7 +21,7 @@
 
 # string, result, cont
 romaji_typing_rule = {
-    u"-" : u"－",
+    u"-" : u"ー",
     u"a" : u"あ",
     u"i" : u"い",
     u"u" : u"う",
@@ -439,7 +439,7 @@ kana_typing_rule = {
     u"?" : u"・",
     u"_" : u"ろ",
 
-    u"¥" : u"－",
+    u"¥" : u"ー",
 }
 
 kana_voiced_consonant_rule = {
