diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index b593fa1..ada7475 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -493,9 +493,15 @@
         while 1:
             buf = fp.readline()
             if not buf: break
-            if buf[-2:] != B_CRLF:
-                if buf[-1] in B_CRLF: buf = buf[:-1]
-                buf = buf + B_CRLF
+            if isinstance(buf, str):
+                if not buf.endswith(CRLF):
+                    if buf[-1] in CRLF: buf = buf[:-1]
+                    buf = buf + CRLF
+                buf = bytes(buf, self.encoding)
+            else:
+                if not buf.endswith(B_CRLF):
+                    if buf[-1:] in B_CRLF: buf = buf[:-1]
+                    buf = buf + B_CRLF
             conn.sendall(buf)
             if callback: callback(buf)
         conn.close()
@@ -771,9 +777,15 @@
                 while 1:
                     buf = fp.readline()
                     if not buf: break
-                    if buf[-2:] != B_CRLF:
-                        if buf[-1] in B_CRLF: buf = buf[:-1]
-                        buf = buf + B_CRLF
+                    if isinstance(buf, str):
+                        if not buf.endswith(CRLF):
+                            if buf[-1] in CRLF: buf = buf[:-1]
+                            buf = buf + CRLF
+                        buf = bytes(buf, self.encoding)
+                    else:
+                        if not buf.endswith(B_CRLF):
+                            if buf[-1:] in B_CRLF: buf = buf[:-1]
+                            buf = buf + B_CRLF
                     conn.sendall(buf)
                     if callback: callback(buf)
                 # shutdown ssl layer
@@ -783,6 +795,7 @@
                 conn.close()
             return self.voidresp()
 
+
     __all__.append('FTP_TLS')
     all_errors = (Error, IOError, EOFError, ssl.SSLError)
 
