Patch #478654: Expose tk_chooseDirectory.
Also delegate kw arguments through ** calls.
diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py
index e07e5d0..eb2a900 100644
--- a/Lib/lib-tk/tkFileDialog.py
+++ b/Lib/lib-tk/tkFileDialog.py
@@ -64,6 +64,10 @@
 
     command = "tk_getSaveFile"
 
+class Directory(_Dialog):
+    "Ask for a directory"
+
+    command = "tk_chooseDirectory"
 
 #
 # convenience stuff
@@ -71,19 +75,19 @@
 def askopenfilename(**options):
     "Ask for a filename to open"
 
-    return apply(Open, (), options).show()
+    return Open(**options).show()
 
 def asksaveasfilename(**options):
     "Ask for a filename to save as"
 
-    return apply(SaveAs, (), options).show()
+    return SaveAs(**options).show()
 
 # FIXME: are the following two perhaps a bit too convenient?
 
 def askopenfile(mode = "r", **options):
     "Ask for a filename to open, and returned the opened file"
 
-    filename = apply(Open, (), options).show()
+    filename = Open(**options).show()
     if filename:
         return open(filename, mode)
     return None
@@ -91,11 +95,14 @@
 def asksaveasfile(mode = "w", **options):
     "Ask for a filename to save as, and returned the opened file"
 
-    filename = apply(SaveAs, (), options).show()
+    filename = SaveAs(**options).show()
     if filename:
         return open(filename, mode)
     return None
 
+def askdirectory (**options):
+    "Ask for a directory, and return the file name"
+    return Directory(**options).show()
 
 # --------------------------------------------------------------------
 # test stuff
diff --git a/Misc/NEWS b/Misc/NEWS
index a9f5a99..e873dad 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -51,6 +51,9 @@
 
 Library
 
+- tkFileDialog exposes a Directory class and askdirectory 
+  convenience function.
+
 - Symbolic group names in regular expressions must be unique.  For
   example, the regexp r'(?P<abc>)(?P<abc>)' is not allowed, because a
   single name can't mean both "group 1" and "group 2" simultaneously.