Also accept .so as an extension for module files.
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index ee08e3b..8d498b7 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -127,14 +127,10 @@
 def modulename(path):
     """Return the Python module name for a given path, or None."""
     filename = os.path.basename(path)
-    if lower(filename[-3:]) == '.py':
-        return filename[:-3]
-    elif lower(filename[-4:]) in ['.pyc', '.pyd', '.pyo']:
-        return filename[:-4]
-    elif lower(filename[-11:]) == 'module.so':
-        return filename[:-11]
-    elif lower(filename[-13:]) == 'module.so.1':
-        return filename[:-13]
+    for ending in ['.py', '.pyc', '.pyd', '.pyo',
+                   'module.so', 'module.so.1', '.so']:
+        if len(filename) > len(ending) and filename[-len(ending):] == ending:
+            return filename[:-len(ending)]
 
 class DocImportError(Exception):
     """Class for errors while trying to import something to document it."""