diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index bf7b3d3..71dd9f1 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -239,6 +239,14 @@
                               'TypeError:("\'FailingNumber\' object is not iterable",)')
         if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1:
             msg = msg.replace('(\'', '("').replace('\',)', '",)')
+        # Some Python versions say can't, others cannot.
+        if msg.find('can\'t') > -1:
+            msg = msg.replace('can\'t', 'cannot')
+        # Some Python versions use single quote, some double quote
+        if msg.find('"cannot ') > -1:
+            msg = msg.replace('"cannot ', '\'cannot ')
+        if msg.find(' attributes"') > -1:
+            msg = msg.replace(' attributes"', ' attributes\'')
         if expr == 'fd(self=[])':
             # HACK: PyMapping_Check changed meaning
             msg = msg.replace('AttributeError:(\'keys\',)',
diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok
index 6d561ec..4e6c4e0 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -628,7 +628,7 @@
 test86.in
 > Output
 >> OutputSetattr
-del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",)
+del sys.stdout.softspace:AttributeError:('cannot delete OutputObject attributes',)
 >>> Testing NumberToLong using sys.stdout.softspace = %s
 sys.stdout.softspace = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
 sys.stdout.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index e75cd27..0db3a27 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -238,9 +238,18 @@
                 else:
                     cb.append(expr + ':' + repr((e.__class__, e)))
             elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte':
-                msg = cb.append(expr + ':' + repr((TypeError, TypeError('expected bytes with no null'))))
+                cb.append(expr + ':' + repr((TypeError, TypeError('expected bytes with no null'))))
             else:
-                cb.append(expr + ':' + repr((e.__class__, e)))
+                msg = repr((e.__class__, e))
+                # Some Python versions say can't, others cannot.
+                if msg.find('can\'t') > -1:
+                    msg = msg.replace('can\'t', 'cannot')
+                # Some Python versions use single quote, some double quote
+                if msg.find('"cannot ') > -1:
+                    msg = msg.replace('"cannot ', '\'cannot ')
+                if msg.find(' attributes"') > -1:
+                    msg = msg.replace(' attributes"', ' attributes\'')
+                cb.append(expr + ':' + msg)
         else:
             cb.append(expr + ':NOT FAILED')
     except Exception as e:
diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok
index 34e9279..d90ef86 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -628,7 +628,7 @@
 test87.in
 > Output
 >> OutputSetattr
-del sys.stdout.softspace:(<class 'AttributeError'>, AttributeError("can't delete OutputObject attributes",))
+del sys.stdout.softspace:(<class 'AttributeError'>, AttributeError('cannot delete OutputObject attributes',))
 >>> Testing NumberToLong using sys.stdout.softspace = %s
 sys.stdout.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
 sys.stdout.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
diff --git a/src/version.c b/src/version.c
index 194a51a..14c49ed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2350,
+/**/
     2349,
 /**/
     2348,
