diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 18887a6..490f900 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -288,20 +288,24 @@
 
     def makeport(self):
         '''Create a new socket and send a PORT command for it.'''
-        msg = "getaddrinfo returns an empty list"
+        err = None
         sock = None
         for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
             af, socktype, proto, canonname, sa = res
             try:
                 sock = socket.socket(af, socktype, proto)
                 sock.bind(sa)
-            except socket.error as msg:
+            except socket.error as err:
                 if sock:
                     sock.close()
                 sock = None
                 continue
             break
-        if not sock:
+        if sock is None:
+            if err is not None:
+                raise err
+            else:
+                raise socket.error("getaddrinfo returns an empty list")
             raise socket.error(msg)
         sock.listen(1)
         port = sock.getsockname()[1] # Get proper port
diff --git a/Misc/NEWS b/Misc/NEWS
index 2f185ac..7ba832e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -108,6 +108,9 @@
 Library
 -------
 
+- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
+  (patch by Serhiy Storchaka)
+
 - Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
   pattern contains a wildcard in the drive or UNC path.  Patch by Serhiy
   Storchaka.
