diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 7c39887..be1797f 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -241,12 +241,13 @@
         This does not follow the procedure from the RFC to send Telnet
         IP and Synch; that doesn't seem to work with the servers I've
         tried.  Instead, just send the ABOR command as OOB data.'''
-        line = 'ABOR' + CRLF
+        line = b'ABOR' + B_CRLF
         if self.debugging > 1: print('*put urgent*', self.sanitize(line))
         self.sock.sendall(line, MSG_OOB)
         resp = self.getmultiline()
         if resp[:3] not in {'426', '225', '226'}:
             raise error_proto(resp)
+        return resp
 
     def sendcmd(self, cmd):
         '''Send a command and return the response.'''
@@ -781,6 +782,15 @@
                 conn.close()
             return self.voidresp()
 
+        def abort(self):
+            # overridden as we can't pass MSG_OOB flag to sendall()
+            line = b'ABOR' + B_CRLF
+            self.sock.sendall(line)
+            resp = self.getmultiline()
+            if resp[:3] not in {'426', '225', '226'}:
+                raise error_proto(resp)
+            return resp
+
     __all__.append('FTP_TLS')
     all_errors = (Error, IOError, EOFError, ssl.SSLError)
 
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 9d2eab7..5b69b0a 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -61,6 +61,8 @@
 
     def __init__(self, conn):
         asynchat.async_chat.__init__(self, conn)
+        # tells the socket to handle urgent data inline (ABOR command)
+        self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_OOBINLINE, 1)
         self.set_terminator(b"\r\n")
         self.in_buffer = []
         self.dtp = None
@@ -181,6 +183,9 @@
         self.push('221 quit ok')
         self.close()
 
+    def cmd_abor(self, arg):
+        self.push('226 abor ok')
+
     def cmd_stor(self, arg):
         self.push('125 stor ok')
 
@@ -491,6 +496,9 @@
         # Ensure the connection gets closed; sock attribute should be None
         self.assertEqual(self.client.sock, None)
 
+    def test_abort(self):
+        self.client.abort()
+
     def test_retrbinary(self):
         def callback(data):
             received.append(data.decode('ascii'))
diff --git a/Misc/NEWS b/Misc/NEWS
index 7fe9376..c68749d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -86,6 +86,8 @@
 - Issue #11927: SMTP_SSL now uses port 465 by default as documented.  Patch
   by Kasun Herath.
 
+- Issue #12002: ftplib's abort() method raises TypeError.
+
 - Issue 11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
   detect mtime changes by comparing to the system clock instead of to the
   previous value of the mtime.
