diff --git a/novaclient/base.py b/novaclient/base.py
index 7f54d9363..731d220ee 100644
--- a/novaclient/base.py
+++ b/novaclient/base.py
@@ -179,6 +179,10 @@ class ManagerWithFind(Manager):
                 list_kwargs['search_opts'] = {"name": kwargs["name"]}
             elif "display_name" in kwargs:
                 list_kwargs['search_opts'] = {"name": kwargs["display_name"]}
+            if "all_tenants" in kwargs:
+                all_tenants = kwargs['all_tenants']
+                list_kwargs['search_opts']['all_tenants'] = all_tenants
+                searches = [(k, v) for k, v in searches if k != 'all_tenants']
 
         listing = self.list(**list_kwargs)
 
diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py
index ffa3587d7..fb8dac8f8 100644
--- a/novaclient/tests/unit/v2/test_shell.py
+++ b/novaclient/tests/unit/v2/test_shell.py
@@ -1111,10 +1111,13 @@ class ShellTest(utils.TestCase):
         self.assert_called('DELETE', '/servers/1234', pos=-3)
         self.assert_called('DELETE', '/servers/5678', pos=-1)
         self.run_command('delete sample-server sample-server2')
-        self.assert_called('GET', '/servers?name=sample-server', pos=-6)
+        self.assert_called('GET',
+                           '/servers?all_tenants=1&name=sample-server', pos=-6)
         self.assert_called('GET', '/servers/1234', pos=-5)
         self.assert_called('DELETE', '/servers/1234', pos=-4)
-        self.assert_called('GET', '/servers?name=sample-server2', pos=-3)
+        self.assert_called('GET',
+                           '/servers?all_tenants=1&name=sample-server2',
+                           pos=-3)
         self.assert_called('GET', '/servers/5678', pos=-2)
         self.assert_called('DELETE', '/servers/5678', pos=-1)
 
diff --git a/novaclient/v2/shell.py b/novaclient/v2/shell.py
index 190d07fe3..29f266934 100644
--- a/novaclient/v2/shell.py
+++ b/novaclient/v2/shell.py
@@ -1876,16 +1876,17 @@ def do_show(cs, args):
     help=_('Name or ID of server(s).'))
 def do_delete(cs, args):
     """Immediately shut down and delete specified server(s)."""
+    find_args = {'all_tenants': '1'}
     utils.do_action_on_many(
-        lambda s: _find_server(cs, s).delete(),
+        lambda s: _find_server(cs, s, **find_args).delete(),
         args.server,
         _("Request to delete server %s has been accepted."),
         _("Unable to delete the specified server(s)."))
 
 
-def _find_server(cs, server):
+def _find_server(cs, server, **find_args):
     """Get a server by name or ID."""
-    return utils.find_resource(cs.servers, server)
+    return utils.find_resource(cs.servers, server, **find_args)
 
 
 def _find_image(cs, image):