Merge 3.2 fix updates and tests for issue #15906.
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 66cd70a..f25b1b6 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -1961,7 +1961,7 @@
                     # twice (which may fail) if the argument was given, but
                     # only if it was defined already in the namespace
                     if (action.default is not None and
-                        isinstance(action, _StoreAction) and
+                        isinstance(action.default, str) and
                         hasattr(namespace, action.dest) and
                         action.default is getattr(namespace, action.dest)):
                         setattr(namespace, action.dest,