diff -u yum-utils-1.1.31/plugins/aliases/aliases.py.org yum-utils-1.1.31/plugins/aliases/aliases.py
--- yum-utils-1.1.31/plugins/aliases/aliases.py.org	2011-08-11 00:20:19.000000000 +0900
+++ yum-utils-1.1.31/plugins/aliases/aliases.py	2012-11-16 16:49:31.000000000 +0900
@@ -64,14 +64,15 @@
     return aliases
 
 def resolve_aliases(args, log, skip=0):
-    need_rep = True
+    need_rep = 1
     while need_rep:
-        need_rep = False
         num = skip
         for arg in args[skip:]:
             if arg and arg[0] != '-':
-                break
+                if need_rep != 2 or arg.isupper():
+                    break
             num += 1
+        need_rep = 0
 
         if num >= len(args): # Only options
             break
@@ -145,7 +146,10 @@
     
     conffile  = conduit.confString('main', 'conffile',
                                   default='/etc/yum/aliases.conf')
-    recursive = conduit.confBool('main', 'recursive', default=True)
+    try:
+        recursive = conduit.confInt('main', 'recursive', default=1)
+    except ValueError, e:
+        recursive = int(conduit.confBool('main', 'recursive', default=True))
     register  = conduit.confBool('main', 'register', default=False)
 
     conduit.registerCommand(AliasCommand())
