Properly deal with tuples in Open._fixresult. Fixes bug reported in
follow-up to #621891.
diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py
index 63487d2..fb0014c 100644
--- a/Lib/lib-tk/tkFileDialog.py
+++ b/Lib/lib-tk/tkFileDialog.py
@@ -76,6 +76,21 @@
 
     command = "tk_getOpenFile"
 
+    def _fixresult(self, widget, result):
+        if isinstance(result, tuple):
+            # multiple results:
+            result = tuple([getattr(r, "string", r) for r in result])
+            if result:
+                import os
+                path, file = os.path.split(result[0])
+                self.options["initialdir"] = path
+                # don't set initialfile or filename, as we have multiple of these
+            return result
+        if not widget.tk.wantobjects() and "multiple" in self.options:
+            # Need to split result explicitly
+            return self._fixresult(widget, widget.tk.splitlist(result))
+        return _Dialog._fixresult(widget, result)
+
 class SaveAs(_Dialog):
     "Ask for a filename to save as"
 
@@ -115,9 +130,7 @@
     cancel button selected
     """
     options["multiple"]=1
-    files=Open(**options).show()
-    return files.split()
-
+    return Open(**options).show()
 
 # FIXME: are the following  perhaps a bit too convenient?
 
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 5851372..5253a10 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -2604,9 +2604,11 @@
 Tkapp_WantObjects(PyObject *self, PyObject *args)
 {
 
-	int wantobjects;
-	if (!PyArg_ParseTuple(args, "i:wantobjects", &wantobjects))
+	int wantobjects = -1;
+	if (!PyArg_ParseTuple(args, "|i:wantobjects", &wantobjects))
 		return NULL;
+	if (wantobjects == -1)
+		return PyBool_FromLong(((TkappObject*)self)->wantobjects);
 	((TkappObject*)self)->wantobjects = wantobjects;
 
 	Py_INCREF(Py_None);