diff --git a/Lib/test/output/test_cProfile b/Lib/test/output/test_cProfile
index 2b799ec..0037924 100644
--- a/Lib/test/output/test_cProfile
+++ b/Lib/test/output/test_cProfile
@@ -5,10 +5,10 @@
 
    ncalls  tottime  percall  cumtime  percall filename:lineno(function)
         1    0.000    0.000    1.000    1.000 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 io.py:1193(flush)
-        1    0.000    0.000    0.000    0.000 io.py:257(flush)
-        1    0.000    0.000    0.000    0.000 io.py:644(closed)
-        1    0.000    0.000    0.000    0.000 io.py:862(flush)
+        2    0.000    0.000    0.000    0.000 io.py:1201(flush)
+        1    0.000    0.000    0.000    0.000 io.py:259(flush)
+        1    0.000    0.000    0.000    0.000 io.py:646(closed)
+        1    0.000    0.000    0.000    0.000 io.py:864(flush)
         8    0.064    0.008    0.080    0.010 test_cProfile.py:103(subhelper)
        28    0.028    0.001    0.028    0.001 test_cProfile.py:115(__getattr__)
         1    0.270    0.270    1.000    1.000 test_cProfile.py:30(testfunc)
@@ -30,11 +30,11 @@
 Function                                          called...
                                                       ncalls  tottime  cumtime
 <string>:1(<module>)                              ->       1    0.270    1.000  test_cProfile.py:30(testfunc)
-io.py:1193(flush)                                 ->       1    0.000    0.000  io.py:257(flush)
-                                                           1    0.000    0.000  io.py:862(flush)
-io.py:257(flush)                                  -> 
-io.py:644(closed)                                 -> 
-io.py:862(flush)                                  ->       1    0.000    0.000  io.py:644(closed)
+io.py:1201(flush)                                 ->       1    0.000    0.000  io.py:259(flush)
+                                                           1    0.000    0.000  io.py:864(flush)
+io.py:259(flush)                                  -> 
+io.py:646(closed)                                 -> 
+io.py:864(flush)                                  ->       1    0.000    0.000  io.py:646(closed)
 test_cProfile.py:103(subhelper)                   ->      16    0.016    0.016  test_cProfile.py:115(__getattr__)
 test_cProfile.py:115(__getattr__)                 -> 
 test_cProfile.py:30(testfunc)                     ->       1    0.014    0.130  test_cProfile.py:40(factorial)
@@ -53,7 +53,7 @@
 test_cProfile.py:93(helper2)                      ->       8    0.064    0.080  test_cProfile.py:103(subhelper)
                                                            8    0.000    0.008  {hasattr}
 {exec}                                            ->       1    0.000    1.000  <string>:1(<module>)
-                                                           2    0.000    0.000  io.py:1193(flush)
+                                                           2    0.000    0.000  io.py:1201(flush)
 {hasattr}                                         ->      12    0.012    0.012  test_cProfile.py:115(__getattr__)
 {method 'append' of 'list' objects}               -> 
 {method 'disable' of '_lsprof.Profiler' objects}  -> 
@@ -65,10 +65,10 @@
 Function                                          was called by...
                                                       ncalls  tottime  cumtime
 <string>:1(<module>)                              <-       1    0.000    1.000  {exec}
-io.py:1193(flush)                                 <-       2    0.000    0.000  {exec}
-io.py:257(flush)                                  <-       1    0.000    0.000  io.py:1193(flush)
-io.py:644(closed)                                 <-       1    0.000    0.000  io.py:862(flush)
-io.py:862(flush)                                  <-       1    0.000    0.000  io.py:1193(flush)
+io.py:1201(flush)                                 <-       2    0.000    0.000  {exec}
+io.py:259(flush)                                  <-       1    0.000    0.000  io.py:1201(flush)
+io.py:646(closed)                                 <-       1    0.000    0.000  io.py:864(flush)
+io.py:864(flush)                                  <-       1    0.000    0.000  io.py:1201(flush)
 test_cProfile.py:103(subhelper)                   <-       8    0.064    0.080  test_cProfile.py:93(helper2)
 test_cProfile.py:115(__getattr__)                 <-      16    0.016    0.016  test_cProfile.py:103(subhelper)
                                                           12    0.012    0.012  {hasattr}
diff --git a/Lib/test/output/test_profile b/Lib/test/output/test_profile
index ca09f8c..5ecdbae 100644
--- a/Lib/test/output/test_profile
+++ b/Lib/test/output/test_profile
@@ -10,10 +10,10 @@
        12    0.000    0.000    0.012    0.001 :0(hasattr)
         1    0.000    0.000    0.000    0.000 :0(setprofile)
         1    0.000    0.000    1.000    1.000 <string>:1(<module>)
-        2    0.000    0.000    0.000    0.000 io.py:1193(flush)
-        1    0.000    0.000    0.000    0.000 io.py:257(flush)
-        1    0.000    0.000    0.000    0.000 io.py:644(closed)
-        1    0.000    0.000    0.000    0.000 io.py:862(flush)
+        2    0.000    0.000    0.000    0.000 io.py:1201(flush)
+        1    0.000    0.000    0.000    0.000 io.py:259(flush)
+        1    0.000    0.000    0.000    0.000 io.py:646(closed)
+        1    0.000    0.000    0.000    0.000 io.py:864(flush)
         0    0.000             0.000          profile:0(profiler)
         1    0.000    0.000    1.000    1.000 profile:0(testfunc())
         8    0.064    0.008    0.080    0.010 test_profile.py:103(subhelper)
@@ -33,15 +33,15 @@
 :0(append)                            -> 
 :0(exc_info)                          -> 
 :0(exec)                              -> <string>:1(<module>)(1)    1.000
-                                         io.py:1193(flush)(2)    0.000
+                                         io.py:1201(flush)(2)    0.000
 :0(hasattr)                           -> test_profile.py:115(__getattr__)(12)    0.028
 :0(setprofile)                        -> 
 <string>:1(<module>)                  -> test_profile.py:30(testfunc)(1)    1.000
-io.py:1193(flush)                     -> io.py:257(flush)(1)    0.000
-                                         io.py:862(flush)(1)    0.000
-io.py:257(flush)                      -> 
-io.py:644(closed)                     -> 
-io.py:862(flush)                      -> io.py:644(closed)(1)    0.000
+io.py:1201(flush)                     -> io.py:259(flush)(1)    0.000
+                                         io.py:864(flush)(1)    0.000
+io.py:259(flush)                      -> 
+io.py:646(closed)                     -> 
+io.py:864(flush)                      -> io.py:646(closed)(1)    0.000
 profile:0(profiler)                   -> profile:0(testfunc())(1)    1.000
 profile:0(testfunc())                 -> :0(exec)(1)    1.000
                                          :0(setprofile)(1)    0.000
@@ -74,10 +74,10 @@
                                          test_profile.py:93(helper2)(8)    0.400
 :0(setprofile)                        <- profile:0(testfunc())(1)    1.000
 <string>:1(<module>)                  <- :0(exec)(1)    1.000
-io.py:1193(flush)                     <- :0(exec)(2)    1.000
-io.py:257(flush)                      <- io.py:1193(flush)(1)    0.000
-io.py:644(closed)                     <- io.py:862(flush)(1)    0.000
-io.py:862(flush)                      <- io.py:1193(flush)(1)    0.000
+io.py:1201(flush)                     <- :0(exec)(2)    1.000
+io.py:259(flush)                      <- io.py:1201(flush)(1)    0.000
+io.py:646(closed)                     <- io.py:864(flush)(1)    0.000
+io.py:864(flush)                      <- io.py:1201(flush)(1)    0.000
 profile:0(profiler)                   <- 
 profile:0(testfunc())                 <- profile:0(profiler)(1)    0.000
 test_profile.py:103(subhelper)        <- test_profile.py:93(helper2)(8)    0.400
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index f5b4a94..87e871b 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -496,6 +496,17 @@
     def tearDown(self):
         test_support.unlink(test_support.TESTFN)
 
+    def testLineBuffering(self):
+        r = io.BytesIO()
+        b = io.BufferedWriter(r, 1000)
+        t = io.TextIOWrapper(b, newline="\n", line_buffering=True)
+        t.write("X")
+        self.assertEquals(r.getvalue(), b"")  # No flush happened
+        t.write("Y\nZ")
+        self.assertEquals(r.getvalue(), b"XY\nZ")  # All got flushed
+        t.write("A\rB")
+        self.assertEquals(r.getvalue(), b"XY\nZA\rB")
+
     def testEncodingErrorsReading(self):
         # (1) default
         b = io.BytesIO(b"abc\n\xff\n")
@@ -525,13 +536,15 @@
         self.assertRaises(UnicodeError, t.write, "\xff")
         # (3) ignore
         b = io.BytesIO()
-        t = io.TextIOWrapper(b, encoding="ascii", errors="ignore", newline="\n")
+        t = io.TextIOWrapper(b, encoding="ascii", errors="ignore",
+                             newline="\n")
         t.write("abc\xffdef\n")
         t.flush()
         self.assertEquals(b.getvalue(), b"abcdef\n")
         # (4) replace
         b = io.BytesIO()
-        t = io.TextIOWrapper(b, encoding="ascii", errors="replace", newline="\n")
+        t = io.TextIOWrapper(b, encoding="ascii", errors="replace",
+                             newline="\n")
         t.write("abc\xffdef\n")
         t.flush()
         self.assertEquals(b.getvalue(), b"abc?def\n")
