diff --git a/openstackclient/common/timing.py b/openstackclient/common/timing.py
index dd2aeb8343..facbec350d 100644
--- a/openstackclient/common/timing.py
+++ b/openstackclient/common/timing.py
@@ -11,31 +11,15 @@
 #   under the License.
 #
 
-"""Timing Implementation"""
+# NOTE(dtroyer): This file is deprecated in Jun 2016, remove after 4.x release
+#                or Jun 2017.
 
-from osc_lib.command import command
+import sys
+
+from osc_lib.command.timing import *  # noqa
 
 
-class Timing(command.Lister):
-    """Show timing data"""
-
-    def take_action(self, parsed_args):
-        column_headers = (
-            'URL',
-            'Seconds',
-        )
-
-        results = []
-        total = 0.0
-        for url, td in self.app.timing_data:
-            # NOTE(dtroyer): Take the long way here because total_seconds()
-            #                was added in py27.
-            sec = (td.microseconds + (td.seconds + td.days *
-                                      86400) * 1e6) / 1e6
-            total += sec
-            results.append((url, sec))
-        results.append(('Total', total))
-        return (
-            column_headers,
-            results,
-        )
+sys.stderr.write(
+    "WARNING: %s is deprecated and will be removed after Jun 2017. "
+    "Please use osc_lib.command.timing\n" % __name__
+)
diff --git a/openstackclient/shell.py b/openstackclient/shell.py
index 3e899cb51c..a15e04dd69 100644
--- a/openstackclient/shell.py
+++ b/openstackclient/shell.py
@@ -26,6 +26,7 @@ from cliff import app
 from cliff import command
 from cliff import complete
 from cliff import help
+from osc_lib.command import timing
 from osc_lib import exceptions as exc
 from osc_lib import logs
 from osc_lib import utils
@@ -35,7 +36,6 @@ from oslo_utils import strutils
 import openstackclient
 from openstackclient.common import clientmanager
 from openstackclient.common import commandmanager
-from openstackclient.common import timing
 
 from os_client_config import config as cloud_config
 
diff --git a/openstackclient/tests/common/test_timing.py b/openstackclient/tests/common/test_timing.py
deleted file mode 100644
index e33bb7ae27..0000000000
--- a/openstackclient/tests/common/test_timing.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#   Licensed under the Apache License, Version 2.0 (the "License"); you may
-#   not use this file except in compliance with the License. You may obtain
-#   a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing, software
-#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#   License for the specific language governing permissions and limitations
-#   under the License.
-#
-
-"""Test Timing pseudo-command"""
-
-import datetime
-
-from openstackclient.common import timing
-from openstackclient.tests import fakes
-from openstackclient.tests import utils
-
-
-timing_url = 'GET http://localhost:5000'
-timing_elapsed = 0.872809
-
-
-class FakeGenericClient(object):
-
-    def __init__(self, **kwargs):
-        self.auth_token = kwargs['token']
-        self.management_url = kwargs['endpoint']
-
-
-class TestTiming(utils.TestCommand):
-
-    columns = (
-        'URL',
-        'Seconds',
-    )
-
-    def setUp(self):
-        super(TestTiming, self).setUp()
-
-        self.app.timing_data = []
-
-        self.app.client_manager.compute = FakeGenericClient(
-            endpoint=fakes.AUTH_URL,
-            token=fakes.AUTH_TOKEN,
-        )
-
-        self.app.client_manager.volume = FakeGenericClient(
-            endpoint=fakes.AUTH_URL,
-            token=fakes.AUTH_TOKEN,
-        )
-
-        # Get the command object to test
-        self.cmd = timing.Timing(self.app, None)
-
-    def test_timing_list_no_data(self):
-        arglist = []
-        verifylist = []
-        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
-        # In base command class Lister in cliff, abstract method take_action()
-        # returns a tuple containing the column names and an iterable
-        # containing the data to be listed.
-        columns, data = self.cmd.take_action(parsed_args)
-
-        self.assertEqual(self.columns, columns)
-        datalist = [
-            ('Total', 0.0,)
-        ]
-        self.assertEqual(datalist, data)
-
-    def test_timing_list(self):
-        self.app.timing_data = [(
-            timing_url,
-            datetime.timedelta(microseconds=timing_elapsed * 1000000),
-        )]
-
-        arglist = []
-        verifylist = []
-        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
-        # In base command class Lister in cliff, abstract method take_action()
-        # returns a tuple containing the column names and an iterable
-        # containing the data to be listed.
-        columns, data = self.cmd.take_action(parsed_args)
-        self.assertEqual(self.columns, columns)
-        datalist = [
-            (timing_url, timing_elapsed),
-            ('Total', timing_elapsed),
-        ]
-        self.assertEqual(datalist, data)