diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index ea91c17..af213f3 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -232,12 +232,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.'''
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index fa1079f..2b2c4cf 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -42,6 +42,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
@@ -158,6 +160,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')
 
@@ -312,6 +317,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'))
