diff --git a/oslo_messaging/serializer.py b/oslo_messaging/serializer.py
index 8b7c0a7a3..78bf983b6 100644
--- a/oslo_messaging/serializer.py
+++ b/oslo_messaging/serializer.py
@@ -12,15 +12,12 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-__all__ = ['Serializer', 'NoOpSerializer', 'JsonPayloadSerializer',
-           'RequestContextSerializer']
+__all__ = ['Serializer', 'NoOpSerializer', 'JsonPayloadSerializer']
 
 """Provides the definition of a message serialization handler"""
 
 import abc
 
-from debtcollector import removals
-from oslo_context import context as common_context
 from oslo_serialization import jsonutils
 import six
 
@@ -64,29 +61,6 @@ class Serializer(object):
         """
 
 
-@removals.remove(version="2.9", removal_version="3.0")
-class RequestContextSerializer(Serializer):
-
-    def __init__(self, base):
-        self._base = base
-
-    def serialize_entity(self, context, entity):
-        if not self._base:
-            return entity
-        return self._base.serialize_entity(context, entity)
-
-    def deserialize_entity(self, context, entity):
-        if not self._base:
-            return entity
-        return self._base.deserialize_entity(context, entity)
-
-    def serialize_context(self, context):
-        return context.to_dict()
-
-    def deserialize_context(self, context):
-        return common_context.RequestContext.from_dict(context)
-
-
 class NoOpSerializer(Serializer):
     """A serializer that does nothing."""
 
diff --git a/oslo_messaging/tests/test_serializer.py b/oslo_messaging/tests/test_serializer.py
deleted file mode 100644
index 329d9de71..000000000
--- a/oslo_messaging/tests/test_serializer.py
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2015 Mirantis Inc.
-#
-#    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.
-
-from oslo_context import context as common_context
-from six.moves import mock
-
-from oslo_messaging import serializer
-from oslo_messaging.tests import utils as test_utils
-
-
-class TestRequestContextSerializer(test_utils.BaseTestCase):
-
-    def setUp(self):
-        super(TestRequestContextSerializer, self).setUp()
-
-        self.serializer = serializer.RequestContextSerializer(mock.MagicMock())
-        self.context = common_context.RequestContext()
-        self.entity = {'foo': 'bar'}
-
-    def test_serialize_entity(self):
-        self.serializer.serialize_entity(self.context, self.entity)
-        self.serializer._base.serialize_entity.assert_called_with(
-            self.context, self.entity)
-
-    def test_serialize_entity_empty_base(self):
-        # NOTE(viktors): Return False for check `if self.serializer._base:`
-        bool_args = {'__bool__': lambda *args: False,
-                     '__nonzero__': lambda *args: False}
-        self.serializer._base.configure_mock(**bool_args)
-
-        entity = self.serializer.serialize_entity(self.context, self.entity)
-        self.assertFalse(self.serializer._base.serialize_entity.called)
-        self.assertEqual(entity, self.entity)
-
-    def test_deserialize_entity(self):
-        self.serializer.deserialize_entity(self.context, self.entity)
-        self.serializer._base.deserialize_entity.assert_called_with(
-            self.context, self.entity)
-
-    def test_deserialize_entity_empty_base(self):
-        # NOTE(viktors): Return False for check `if self.serializer._base:`
-        bool_args = {'__bool__': lambda *args: False,
-                     '__nonzero__': lambda *args: False}
-        self.serializer._base.configure_mock(**bool_args)
-
-        entity = self.serializer.deserialize_entity(self.context, self.entity)
-        self.assertFalse(self.serializer._base.serialize_entity.called)
-        self.assertEqual(entity, self.entity)
-
-    def test_serialize_context(self):
-        new_context = self.serializer.serialize_context(self.context)
-
-        self.assertEqual(new_context, self.context.to_dict())
-
-    @mock.patch.object(common_context.RequestContext, 'from_dict',
-                       return_value='foobar')
-    def test_deserialize_context(self, mock_to_dict):
-        new_context = self.serializer.deserialize_context(self.context)
-
-        mock_to_dict.assert_called_with(self.context)
-        self.assertEqual(
-            new_context,
-            common_context.RequestContext.from_dict(self.context)
-        )
diff --git a/requirements.txt b/requirements.txt
index f7a5c87f3..c93f35eda 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,7 +6,6 @@ pbr>=1.6
 
 futurist>=0.1.2 # Apache-2.0
 oslo.config>=2.7.0 # Apache-2.0
-oslo.context>=0.2.0 # Apache-2.0
 oslo.log>=1.12.0 # Apache-2.0
 oslo.utils>=2.8.0 # Apache-2.0
 oslo.serialization>=1.10.0 # Apache-2.0