getdoc():
    Remove leading whitespace from first line; remove leading and
    trailing blank lines from docstrings.  (Patch 645938 submitted
    by David Goodger.)
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 96677b7..d3fd3ad 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -275,15 +275,23 @@
     except UnicodeError:
         return None
     else:
-        margin = None
+        # Find minimum indentation of any non-blank lines after first line.
+        margin = sys.maxint
         for line in lines[1:]:
             content = len(string.lstrip(line))
-            if not content: continue
-            indent = len(line) - content
-            if margin is None: margin = indent
-            else: margin = min(margin, indent)
-        if margin is not None:
+            if content:
+                indent = len(line) - content
+                margin = min(margin, indent)
+        # Remove indentation.
+        if lines:
+            lines[0] = lines[0].lstrip()
+        if margin < sys.maxint:
             for i in range(1, len(lines)): lines[i] = lines[i][margin:]
+        # Remove any trailing or leading blank lines.
+        while lines and not lines[-1]:
+            lines.pop()
+        while lines and not lines[0]:
+            lines.pop(0)
         return string.join(lines, '\n')
 
 def getfile(object):
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index ccfba34..d253f26 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -144,7 +144,7 @@
 test(inspect.getdoc(mod.StupidGit) ==
      'A longer,\n\nindented\n\ndocstring.', 'getdoc(mod.StupidGit)')
 test(inspect.getdoc(git.abuse) ==
-     'Another\n\ndocstring\n\ncontaining\n\ntabs\n\n', 'getdoc(git.abuse)')
+     'Another\n\ndocstring\n\ncontaining\n\ntabs', 'getdoc(git.abuse)')
 test(inspect.getcomments(mod.StupidGit) == '# line 20\n',
      'getcomments(mod.StupidGit)')