diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 2696549..f4205f4 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -322,13 +322,13 @@
 .. method:: FTP.mlsd(path="", facts=[])
 
    List a directory in a standardized format by using MLSD command
-   (:rfc:`3659`). If *path* is omitted the current directory is assumed.
+   (:rfc:`3659`).  If *path* is omitted the current directory is assumed.
    *facts* is a list of strings representing the type of information desired
-   (e.g. *["type", "size", "perm"]*).  Return a generator object yielding a
-   tuple of two elements for every file found in path. First element is the
-   file name, the second one is a dictionary including a variable number of
-   "facts" depending on the server and whether *facts* argument has been
-   provided.
+   (e.g. ``["type", "size", "perm"]``).  Return a generator object yielding a
+   tuple of two elements for every file found in path.  First element is the
+   file name, the second one is a dictionary containing facts about the file
+   name.  Content of this dictionary might be limited by the *facts* argument
+   but server is not guaranteed to return all requested facts.
 
    .. versionadded:: 3.3
 
@@ -340,7 +340,7 @@
    directory).  Multiple arguments can be used to pass non-standard options to
    the ``NLST`` command.
 
-   .. deprecated:: 3.3 use :meth:`mlsd` instead
+   .. deprecated:: 3.3 use :meth:`mlsd` instead.
 
 
 .. method:: FTP.dir(argument[, ...])
@@ -352,7 +352,7 @@
    as a *callback* function as for :meth:`retrlines`; the default prints to
    ``sys.stdout``.  This method returns ``None``.
 
-   .. deprecated:: 3.3 use :meth:`mlsd` instead
+   .. deprecated:: 3.3 use :meth:`mlsd` instead.
 
 
 .. method:: FTP.rename(fromname, toname)
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
index 8d75b96..cf961ae 100644
--- a/Lib/test/test_ftplib.py
+++ b/Lib/test/test_ftplib.py
@@ -586,10 +586,12 @@
 
         ls = list(self.client.mlsd())
         for name, facts in ls:
+            self.assertIsInstance(name, str)
+            self.assertIsInstance(facts, dict)
             self.assertTrue(name)
-            self.assertTrue('type' in facts)
-            self.assertTrue('perm' in facts)
-            self.assertTrue('unique' in facts)
+            self.assertIn('type', facts)
+            self.assertIn('perm', facts)
+            self.assertIn('unique', facts)
 
         def set_data(data):
             self.server.handler_instance.next_data = data
@@ -626,7 +628,8 @@
         # case sensitiveness
         set_data('Type=type;TyPe=perm;UNIQUE=unique; name\r\n')
         _name, facts = next(self.client.mlsd())
-        [self.assertTrue(x.islower()) for x in facts.keys()]
+        for x in facts:
+            self.assertTrue(x.islower())
         # no data (directory empty)
         set_data('')
         self.assertRaises(StopIteration, next, self.client.mlsd())
