If append mode is specified seek to the end of the file.
Add a test to test_fileio.py for this.
diff --git a/Lib/test/test_fileio.py b/Lib/test/test_fileio.py
index 064ec0c..8cf79df 100644
--- a/Lib/test/test_fileio.py
+++ b/Lib/test/test_fileio.py
@@ -205,6 +205,24 @@
         finally:
             os.unlink(TESTFN)
 
+    def testAppend(self):
+        try:
+            f = open(TESTFN, 'wb')
+            f.write(b'spam')
+            f.close()
+            f = open(TESTFN, 'ab')
+            f.write(b'eggs')
+            f.close()
+            f = open(TESTFN, 'rb')
+            d = f.read()
+            f.close()
+            self.assertEqual(d, b'spameggs')
+        finally:
+            try:
+                os.unlink(TESTFN)
+            except:
+                pass
+
 def test_main():
     # Historically, these tests have been sloppy about removing TESTFN.
     # So get rid of it no matter what.
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index c46f17e..364748a 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -242,6 +242,18 @@
 			PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
 			goto error;
 		}
+		if (append) {
+			int result;
+			Py_BEGIN_ALLOW_THREADS
+			errno = 0;
+			result = lseek(self->fd, 0, SEEK_END);
+			Py_END_ALLOW_THREADS
+			if (result < 0) {
+				close(self->fd);
+				PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
+				goto error;
+			}
+		}
 	}
 
 	goto done;