diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
index e1458bce84dbf74db98eccd87b41efe13180f057_bWVyY3VyaWFsL2NtZHV0aWwucHk=..068e0e5315848418fd4be8a5a7ae4f4197e9dda1_bWVyY3VyaWFsL2NtZHV0aWwucHk= 100644
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -526,7 +526,7 @@
     allst = ('m', 'a', 'r', 'd', 'u', 'i', 'c')
 
     # checking the argument validity
-    for s in terseargs:
+    for s in pycompat.bytestr(terseargs):
         if s not in allst:
             raise error.Abort(_("'%s' not recognized") % s)
 
@@ -537,4 +537,5 @@
 
     tersedict = {}
     for attrname in pstatus:
+        statuschar = attrname[0:1]
         for f in getattr(statuslist, attrname):
@@ -540,6 +541,6 @@
         for f in getattr(statuslist, attrname):
-            rootobj.addfile(f, attrname[0])
-        tersedict[attrname[0]] = []
+            rootobj.addfile(f, statuschar)
+        tersedict[statuschar] = []
 
     # we won't be tersing the root dir, so add files in it
     for st, fpath in rootobj.iterfilepaths():