diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py
index c32d3ed..16d86bb 100644
--- a/IPython/testing/iptest.py
+++ b/IPython/testing/iptest.py
@@ -84,21 +84,17 @@ warnings.filterwarnings('ignore', 'wxPython/wxWidgets release number mismatch',
 # ------------------------------------------------------------------------------
 # Monkeypatch Xunit to count known failures as skipped.
 # ------------------------------------------------------------------------------
-if not hasattr(Xunit, 'orig_addError'):
+def monkeypatch_xunit():
     try:
         knownfailureif(True)(lambda: None)()
     except Exception as e:
         KnownFailureTest = type(e)
 
-
     def addError(self, test, err, capt=None):
         if issubclass(err[0], KnownFailureTest):
             err = (SkipTest,) + err[1:]
         return self.orig_addError(test, err, capt)
 
-    #xunit.Xunit = Xunit
-
-
     Xunit.orig_addError = Xunit.addError
     Xunit.addError = addError
 
@@ -410,6 +406,9 @@ def run_iptest():
     `iptest all`.  It simply calls nose with appropriate command line flags
     and accepts all of the standard nose arguments.
     """
+    # Apply our monkeypatch to Xunit
+    if not hasattr(Xunit, 'orig_addError'):
+        monkeypatch_xunit()
 
     warnings.filterwarnings('ignore',
         'This will be removed soon.  Use IPython.testing.util instead')