diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
index a8de984..5b66e3c 100644
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -1706,9 +1706,9 @@
    For a typing object of the form ``X[Y, Z, ...]`` these functions return
    ``X`` and ``(Y, Z, ...)``. If ``X`` is a generic alias for a builtin or
    :mod:`collections` class, it gets normalized to the original class.
-   If ``X`` is a :class:`Union` contained in another generic type,
-   the order of ``(Y, Z, ...)`` may be different from the order of
-   the original arguments ``[Y, Z, ...]`` due to type caching.
+   If ``X`` is a :class:`Union` or :class:`Literal` contained in another
+   generic type, the order of ``(Y, Z, ...)`` may be different from the order
+   of the original arguments ``[Y, Z, ...]`` due to type caching.
    For unsupported objects return ``None`` and ``()`` correspondingly.
    Examples::
 
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py
index 7deba0d..8ffc7f4 100644
--- a/Lib/test/test_typing.py
+++ b/Lib/test/test_typing.py
@@ -569,6 +569,11 @@ def test_equal(self):
         self.assertEqual(Literal[1, 2], Literal[2, 1])
         self.assertEqual(Literal[1, 2, 3], Literal[1, 2, 3, 3])
 
+    def test_hash(self):
+        self.assertEqual(hash(Literal[1]), hash(Literal[1]))
+        self.assertEqual(hash(Literal[1, 2]), hash(Literal[2, 1]))
+        self.assertEqual(hash(Literal[1, 2, 3]), hash(Literal[1, 2, 3, 3]))
+
     def test_args(self):
         self.assertEqual(Literal[1, 2, 3].__args__, (1, 2, 3))
         self.assertEqual(Literal[1, 2, 3, 3].__args__, (1, 2, 3))
diff --git a/Lib/typing.py b/Lib/typing.py
index d310b3d..46c54c4 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -981,7 +981,7 @@ def __eq__(self, other):
         return set(_value_and_type_iter(self.__args__)) == set(_value_and_type_iter(other.__args__))
 
     def __hash__(self):
-        return hash(tuple(_value_and_type_iter(self.__args__)))
+        return hash(frozenset(_value_and_type_iter(self.__args__)))
 
 
 class Generic:
