Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 7d844d8..fc8213f 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -235,6 +235,16 @@
         # "Test opening a nonexistent file"
         self.assertRaises(IOError, BZ2File, "/non/existent")
 
+    def testModeU(self):
+        # Bug #1194181: bz2.BZ2File opened for write with mode "U"
+        self.createTempFile()
+        bz2f = BZ2File(self.filename, "U")
+        bz2f.close()
+        f = file(self.filename)
+        f.seek(0, 2)
+        self.assertEqual(f.tell(), len(self.DATA))
+        f.close()
+
 class BZ2CompressorTest(BaseTest):
     def testCompress(self):
         # "Test BZ2Compressor.compress()/flush()"
diff --git a/Misc/NEWS b/Misc/NEWS
index 67ccb42..637ca2eb1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -91,6 +91,8 @@
 Extension Modules
 -----------------
 
+- Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
+
 - Patch #1212117: os.stat().st_flags is now accessible as a attribute
   if available on the platform.
 
diff --git a/Modules/bz2module.c b/Modules/bz2module.c
index 8a93cd9..b9874eb 100644
--- a/Modules/bz2module.c
+++ b/Modules/bz2module.c
@@ -1308,6 +1308,10 @@
 			break;
 	}
 
+	if (mode_char == 0) {
+		mode_char = 'r';
+	}
+
 	mode = (mode_char == 'r') ? "rb" : "wb";
 
 	self->file = PyObject_CallFunction((PyObject*)&PyFile_Type, "(Osi)",