- Bug #891637, patch #1005466: fix inspect.getargs() crash on def foo((bar)).
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 7f73264..42eda77 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -624,14 +624,22 @@
                         count.append(value)
                     elif opname == 'STORE_FAST':
                         stack.append(names[value])
-                        remain[-1] = remain[-1] - 1
-                        while remain[-1] == 0:
-                            remain.pop()
-                            size = count.pop()
-                            stack[-size:] = [stack[-size:]]
-                            if not remain: break
+
+                        # Special case for sublists of length 1: def foo((bar))
+                        # doesn't generate the UNPACK_TUPLE bytecode, so if
+                        # `remain` is empty here, we have such a sublist.
+                        if not remain:
+                            stack[0] = [stack[0]]
+                            break
+                        else:
                             remain[-1] = remain[-1] - 1
-                        if not remain: break
+                            while remain[-1] == 0:
+                                remain.pop()
+                                size = count.pop()
+                                stack[-size:] = [stack[-size:]]
+                                if not remain: break
+                                remain[-1] = remain[-1] - 1
+                            if not remain: break
             args[i] = stack[0]
 
     varargs = None
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index bdbec41..2f79fc3 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -374,3 +374,11 @@
 # Doc/lib/libinspect.tex claims there are 11 such functions
 count = len(filter(lambda x:x.startswith('is'), dir(inspect)))
 test(count == 11, "There are %d (not 11) is* functions", count)
+
+def sublistOfOne((foo)): return 1
+
+args, varargs, varkw, defaults = inspect.getargspec(sublistOfOne)
+test(args == [['foo']], 'sublistOfOne args')
+test(varargs is None, 'sublistOfOne varargs')
+test(varkw is None, 'sublistOfOne varkw')
+test(defaults is None, 'sublistOfOn defaults')