diff --git a/Lib/os.py b/Lib/os.py
index a04aa7f..2fdf668 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -651,9 +651,9 @@
     def __iter__(self):
         return iter(self._stream)
 
-# Supply os.fdopen() (used by subprocess!)
-def fdopen(fd, mode="r", buffering=-1):
+# Supply os.fdopen()
+def fdopen(fd, *args, **kwargs):
     if not isinstance(fd, int):
         raise TypeError("invalid fd type (%s, expected integer)" % type(fd))
     import io
-    return io.open(fd, mode, buffering)
+    return io.open(fd, *args, **kwargs)
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index c8166c4..695541c 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -113,18 +113,14 @@
         self.assertEqual(code, 404)
 
     def test_fileno(self):
-        if (sys.platform in ('win32',) or
-            not hasattr(os, 'fdopen')):
+        if sys.platform in ('win32',):
             # On Windows, socket handles are not file descriptors; this
             # test can't pass on Windows.
             return
         # Make sure fd returned by fileno is valid.
         open_url = self.urlopen("http://www.python.org/")
         fd = open_url.fileno()
-        # XXX(nnorwitz): There is currently no way to pass errors, encoding,
-        # etc to fdopen. :-(
-        FILE = os.fdopen(fd)
-        FILE._errors = 'ignore'
+        FILE = os.fdopen(fd, encoding='utf-8')
         try:
             self.assert_(FILE.read(), "reading from file created using fd "
                                       "returned by fileno failed")
@@ -156,7 +152,7 @@
         file_location,info = self.urlretrieve("http://www.python.org/")
         self.assert_(os.path.exists(file_location), "file location returned by"
                         " urlretrieve is not a valid path")
-        FILE = open(file_location, errors='ignore')
+        FILE = open(file_location, encoding='utf-8')
         try:
             self.assert_(FILE.read(), "reading from the file location returned"
                          " by urlretrieve failed")
@@ -170,7 +166,7 @@
                                               support.TESTFN)
         self.assertEqual(file_location, support.TESTFN)
         self.assert_(os.path.exists(file_location))
-        FILE = open(file_location, errors='ignore')
+        FILE = open(file_location, encoding='utf-8')
         try:
             self.assert_(FILE.read(), "reading from temporary file failed")
         finally:
