prepare release V3.1.1
diff --git a/CHANGES.rst b/CHANGES.rst
index ffc65d7..08b9df9 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -623,13 +623,13 @@
 - [#80] list_ports: Compatibility issue between Windows/Linux
 
 
-
-Version 3.x.y   2016-nn-nn
+Version 3.1.1   2016-06-12
 --------------------------
 Improvements:
 
 - deprecate ``nonblocking()`` method on posix, the port is already in this
   mode.
+- style: use .format() in various places instead of "%" formatting
 
 Bugfixes:
 
@@ -641,3 +641,8 @@
 Bugfixes (posix):
 
 - [#126] PATCH: Check delay_before_tx/rx for None in serialposix.py
+- posix: retry if interrupted in Serial.read
+
+Bugfixes (win32):
+
+- win32: handle errors of GetOverlappedResult in read(), fixes #121
diff --git a/documentation/conf.py b/documentation/conf.py
index 66b44da..4cff961 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -47,7 +47,7 @@
 # The short X.Y version.
 version = '3.1'
 # The full version, including alpha/beta/rc tags.
-release = '3.1.0'
+release = '3.1.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/serial/__init__.py b/serial/__init__.py
index 049cff1..c3cc154 100644
--- a/serial/__init__.py
+++ b/serial/__init__.py
@@ -13,7 +13,7 @@
 from serial.serialutil import *
 #~ SerialBase, SerialException, to_bytes, iterbytes
 
-__version__ = '3.1'
+__version__ = '3.1.1'
 
 VERSION = __version__
 
diff --git a/serial/aio.py b/serial/aio.py
index 9dd5215..8173897 100644
--- a/serial/aio.py
+++ b/serial/aio.py
@@ -376,7 +376,7 @@
 
     This function is a coroutine.
     """
-    # in order to avoid errors when pySerial is installed uner Python 2,
+    # in order to avoid errors when pySerial is installed under Python 2,
     # avoid Pyhthon 3 syntax here. So do not use this function as a good
     # example!
     loop = kwargs.get('loop', asyncio.get_event_loop())