diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index cf734f7..f24a929 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -2758,24 +2758,6 @@
         self.assertRaises(self.failureException, self.assertDictEqual, [], d)
         self.assertRaises(self.failureException, self.assertDictEqual, 1, 1)
 
-        self.assertSameElements([1, 2, 3], [3, 2, 1])
-        self.assertSameElements([1, 2] + [3] * 100, [1] * 100 + [2, 3])
-        self.assertSameElements(['foo', 'bar', 'baz'], ['bar', 'baz', 'foo'])
-        self.assertRaises(self.failureException, self.assertSameElements,
-                          [10], [10, 11])
-        self.assertRaises(self.failureException, self.assertSameElements,
-                          [10, 11], [10])
-
-        # Test that sequences of unhashable objects can be tested for sameness:
-        self.assertSameElements([[1, 2], [3, 4]], [[3, 4], [1, 2]])
-
-        self.assertSameElements([{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 1}])
-        self.assertRaises(self.failureException, self.assertSameElements,
-                          [[1]], [[2]])
-        self.assertRaises(self.failureException, self.assertSameElements,
-                          [{'a': 1}, {'b': 2}], [{'b': 2}, {'a': 2}])
-
-
     def testAssertItemsEqual(self):
         a = object()
         self.assertItemsEqual([1, 2, 3], [3, 2, 1])
@@ -3032,7 +3014,8 @@
             (self.failIfAlmostEqual, (3.0, 5.0)),
             (self.failUnless, (True,)),
             (self.failUnlessRaises, (TypeError, lambda _: 3.14 + 'spam')),
-            (self.failIf, (False,))
+            (self.failIf, (False,)),
+            (self.assertSameElements, ([1, 1, 2, 3], [1, 2, 3]))
         )
         for meth, args in old:
             with warnings.catch_warnings(record=True) as w:
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index d9f35fe..0d224d8 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -700,10 +700,9 @@
             msg: Optional message to use on failure instead of a list of
                     differences.
 
-        For more general containership equality, assertSameElements will work
-        with things other than sets.    This uses ducktyping to support
-        different types of sets, and is optimized for sets specifically
-        (parameters must support a difference method).
+        assertSetEqual uses ducktyping to support different types of sets, and
+        is optimized for sets specifically (parameters must support a
+        difference method).
         """
         try:
             difference1 = set1.difference(set2)
@@ -809,6 +808,8 @@
         set(actual))`` but it works with sequences of unhashable objects as
         well.
         """
+        warnings.warn('assertSameElements is deprecated',
+                      DeprecationWarning)
         try:
             expected = set(expected_seq)
             actual = set(actual_seq)
