expected failure should not trigger failfast behavior in unittest.
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index 05c0182..5d51ffc 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -2113,12 +2113,6 @@
         result.addUnexpectedSuccess(None)
         self.assertTrue(result.shouldStop)
 
-        result = unittest.TestResult()
-        result._exc_info_to_string = lambda *_: ''
-        result.failfast = True
-        result.addExpectedFailure(None, None)
-        self.assertTrue(result.shouldStop)
-
     def testFailFastSetByRunner(self):
         runner = unittest.TextTestRunner(stream=StringIO(), failfast=True)
         def test(result):
diff --git a/Lib/unittest/main.py b/Lib/unittest/main.py
index 8fd23c0..35466cc 100644
--- a/Lib/unittest/main.py
+++ b/Lib/unittest/main.py
@@ -178,7 +178,7 @@
                 testRunner = self.testRunner(verbosity=self.verbosity,
                                              failfast=self.failfast)
             except TypeError:
-                # didn't accept the verbosity or failfast argument
+                # didn't accept the verbosity or failfast arguments
                 testRunner = self.testRunner()
         else:
             # it is assumed to be a TestRunner instance
diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index 96d56a1..ec80e8e 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -81,7 +81,6 @@
         """Called when a test is skipped."""
         self.skipped.append((test, reason))
 
-    @failfast
     def addExpectedFailure(self, test, err):
         """Called when an expected failure/error occured."""
         self.expectedFailures.append(