diff --git a/README.rst b/README.rst
index 6a4fcde1b..ed4dc96b5 100644
--- a/README.rst
+++ b/README.rst
@@ -109,10 +109,16 @@ You'll find complete documentation on the shell by running
         endpoints           Discover endpoints that get returned from the
                             authenticate services
         evacuate            Evacuate a server from failed host
-        flavor-create       Create a new flavor
-        flavor-delete       Delete a specific flavor
+        flavor-create       Create a new flavor.
+        flavor-delete       Delete a specific flavor.
         flavor-list         Print a list of available 'flavors' (sizes of
                             servers).
+        flavor-show         Show details about the given flavor.
+        flavor-key          Set or unset extra_spec for a flavor.
+        flavor-access-list  Print access information about the given flavor.
+        flavor-access-add   Add flavor access for the given tenant.
+        flavor-access-remove
+                            Remove flavor access for the given tenant.
         floating-ip-create  Allocate a floating IP for the current tenant.
         floating-ip-delete  De-allocate a floating IP.
         floating-ip-list    List floating ips for this tenant.
diff --git a/novaclient/utils.py b/novaclient/utils.py
index 47a59d152..3a0ad3b6a 100644
--- a/novaclient/utils.py
+++ b/novaclient/utils.py
@@ -196,15 +196,9 @@ def find_resource(manager, name_or_id):
     """Helper for the _find_* methods."""
     # first try to get entity as integer id
     try:
-        is_intid = isinstance(name_or_id, int) or name_or_id.isdigit()
-    except AttributeError:
-        is_intid = False
-
-    if is_intid:
-        try:
-            return manager.get(int(name_or_id))
-        except exceptions.NotFound:
-            pass
+        return manager.get(int(name_or_id))
+    except (TypeError, ValueError, exceptions.NotFound):
+        pass
 
     # now try to get entity as uuid
     try:
@@ -365,13 +359,6 @@ def is_uuid_like(val):
         return False
 
 
-def check_uuid_like(val):
-    if not is_uuid_like(val):
-        raise exceptions.CommandError(
-                     "error: Invalid tenant-id %s supplied"
-                       % val)
-
-
 def _load_entry_point(ep_name, name=None):
     """Try to load the entry point ep_name that matches name."""
     for ep in pkg_resources.iter_entry_points(ep_name, name=name):
diff --git a/novaclient/v1_1/flavors.py b/novaclient/v1_1/flavors.py
index 267bd2da3..b859d3fbb 100644
--- a/novaclient/v1_1/flavors.py
+++ b/novaclient/v1_1/flavors.py
@@ -134,35 +134,37 @@ class FlavorManager(base.ManagerWithFind):
 
         try:
             ram = int(ram)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("Ram must be an integer.")
-
         try:
             vcpus = int(vcpus)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("VCPUs must be an integer.")
-
         try:
             disk = int(disk)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("Disk must be an integer.")
 
         if flavorid == "auto":
             flavorid = None
+        elif not utils.is_uuid_like(flavorid):
+            try:
+                flavorid = int(flavorid)
+            except (TypeError, ValueError):
+                raise exceptions.CommandError("Flavor ID must be an integer "
+                                              "or a UUID or auto.")
 
         try:
             swap = int(swap)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("Swap must be an integer.")
-
         try:
             ephemeral = int(ephemeral)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("Ephemeral must be an integer.")
-
         try:
             rxtx_factor = float(rxtx_factor)
-        except:
+        except (TypeError, ValueError):
             raise exceptions.CommandError("rxtx_factor must be a float.")
 
         try:
diff --git a/novaclient/v1_1/shell.py b/novaclient/v1_1/shell.py
index f0ea69198..f6bb6d959 100644
--- a/novaclient/v1_1/shell.py
+++ b/novaclient/v1_1/shell.py
@@ -416,7 +416,7 @@ def _print_flavor_extra_specs(flavor):
         return "N/A"
 
 
-def _print_flavor_list(cs, flavors, show_extra_specs=False):
+def _print_flavor_list(flavors, show_extra_specs=False):
     _translate_flavor_keys(flavors)
 
     headers = [
@@ -456,7 +456,7 @@ def do_flavor_list(cs, args):
         flavors = cs.flavors.list(is_public=None)
     else:
         flavors = cs.flavors.list()
-    _print_flavor_list(cs, flavors, args.extra_specs)
+    _print_flavor_list(flavors, args.extra_specs)
 
 
 @utils.arg('flavor',
@@ -466,6 +466,7 @@ def do_flavor_delete(cs, args):
     """Delete a specific flavor"""
     flavorid = _find_flavor(cs, args.flavor)
     cs.flavors.delete(flavorid)
+    _print_flavor_list([flavorid])
 
 
 @utils.arg('flavor',
@@ -474,7 +475,7 @@ def do_flavor_delete(cs, args):
 def do_flavor_show(cs, args):
     """Show details about the given flavor."""
     flavor = _find_flavor(cs, args.flavor)
-    _print_flavor(cs, flavor)
+    _print_flavor(flavor)
 
 
 @utils.arg('name',
@@ -515,7 +516,7 @@ def do_flavor_create(cs, args):
     f = cs.flavors.create(args.name, args.ram, args.vcpus, args.disk, args.id,
                           args.ephemeral, args.swap, args.rxtx_factor,
                           args.is_public)
-    _print_flavor_list(cs, [f])
+    _print_flavor_list([f])
 
 
 @utils.arg('flavor',
@@ -847,7 +848,7 @@ def _print_image(image):
     utils.print_dict(info)
 
 
-def _print_flavor(cs, flavor):
+def _print_flavor(flavor):
     info = flavor._info.copy()
     # ignore links, we don't need to present those
     info.pop('links')