Patch #810914: Return absolute path for mkstemp. Fixes #810408.
This should not be backported to 2.3, as it might break backwards
compatibility.
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 756d8c8..472fd83 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -214,7 +214,7 @@
         try:
             fd = _os.open(file, flags, 0600)
             _set_cloexec(fd)
-            return (fd, file)
+            return (fd, _os.path.abspath(file))
         except OSError, e:
             if e.errno == _errno.EEXIST:
                 continue # try again
diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py
index 8df3856..d88d50f 100644
--- a/Lib/test/test_tempfile.py
+++ b/Lib/test/test_tempfile.py
@@ -49,7 +49,8 @@
         npre  = nbase[:len(pre)]
         nsuf  = nbase[len(nbase)-len(suf):]
 
-        self.assertEqual(ndir, dir,
+        # check for equality of the absolute paths!
+        self.assertEqual(os.path.abspath(ndir), os.path.abspath(dir),
                          "file '%s' not in directory '%s'" % (name, dir))
         self.assertEqual(npre, pre,
                          "file '%s' does not begin with '%s'" % (nbase, pre))
@@ -384,6 +385,10 @@
             dir = tempfile.gettempdir()
         try:
             (fd, name) = tempfile.mkstemp(dir=dir, prefix=pre, suffix=suf)
+            (ndir, nbase) = os.path.split(name)
+            adir = os.path.abspath(dir)
+            self.assertEqual(adir, ndir,
+                "Directory '%s' incorrectly returned as '%s'" % (adir, ndir))
         except:
             self.failOnException("mkstemp")
 
@@ -400,6 +405,7 @@
         self.do_create(suf="b")
         self.do_create(pre="a", suf="b")
         self.do_create(pre="aa", suf=".txt")
+        self.do_create(dir=".")
 
     def test_choose_directory(self):
         # mkstemp can create directories in a user-selected directory
diff --git a/Misc/NEWS b/Misc/NEWS
index 21d0701..0ee896d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -55,6 +55,8 @@
 Library
 -------
 
+- tmpfile.mkstemp now returns an absolute path even if dir is relative.
+
 - urlparse is RFC 2396 compliant.
 
 - The fieldnames argument to the csv module's DictReader constructor is now