diff --git a/CHANGES.rst b/CHANGES.rst
index 096007e..56d42b7 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -683,8 +683,29 @@
 - [#162] Write in non-blocking mode returns incorrect value on windows
 
 
-Version 3.2.x   2017-xx-xx
---------------------------
+Version 3.3   2017-03-08
+------------------------
+Improvements:
+
+- [#206] Exclusive access on POSIX. ``exclusive`` flag added.
+- [#172] list_ports_windows: list_ports with 'manufacturer' info property
+- [#174] miniterm: change cancel impl. for console
+- [#182] serialutil: add overall timeout for read_until
+- socket: use non-blocking socket and new Timeout class
+- socket: implement a functional a reset_input_buffer
+- rfc2217: improve read timeout implementation
+- win32: include error message from system in ClearCommError exception
+- and a few minor changes, docs
+
+Bugfixes:
+
+- [#183] rfc2217: Fix broken calls to to_bytes on Python3.
+- [#188] rfc2217: fix auto-open use case when port is given as parameter
+
+Bugfixes (posix):
+
+- [#178] in read, count length of converted data
+- [#189] fix return value of write
 
 Bugfixes (win32):
 
diff --git a/documentation/conf.py b/documentation/conf.py
index a03b171..64605a6 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -38,16 +38,16 @@
 
 # General information about the project.
 project = u'pySerial'
-copyright = u'2001-2016, Chris Liechti'
+copyright = u'2001-2017, Chris Liechti'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = '3.2'
+version = '3.3'
 # The full version, including alpha/beta/rc tags.
-release = '3.2.1'
+release = '3.3'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/documentation/pyserial_api.rst b/documentation/pyserial_api.rst
index 54d2ff3..65eeae5 100644
--- a/documentation/pyserial_api.rst
+++ b/documentation/pyserial_api.rst
@@ -52,7 +52,7 @@
 
         :param float inter_byte_timeout:
             Inter-character timeout, :const:`None` to disable (default).
-            
+
         :param bool exclusive:
             Set exclusive access mode (POSIX only).  A port cannot be opened in 
             exclusive access mode if it is already open in exclusive access mode.
@@ -112,6 +112,7 @@
         .. versionchanged:: 2.5
             *dsrdtr* now defaults to ``False`` (instead of *None*)
         .. versionchanged:: 3.0 numbers as *port* argument are no longer supported
+        .. versionadded:: 3.3 ``exclusive`` flag
 
     .. method:: open()
 
diff --git a/serial/__init__.py b/serial/__init__.py
index 4cd3a25..64c43c1 100644
--- a/serial/__init__.py
+++ b/serial/__init__.py
@@ -3,7 +3,7 @@
 # This is a wrapper module for different platform implementations
 #
 # This file is part of pySerial. https://github.com/pyserial/pyserial
-# (C) 2001-2016 Chris Liechti <cliechti@gmx.net>
+# (C) 2001-2017 Chris Liechti <cliechti@gmx.net>
 #
 # SPDX-License-Identifier:    BSD-3-Clause
 
@@ -13,7 +13,7 @@
 from serial.serialutil import *
 #~ SerialBase, SerialException, to_bytes, iterbytes
 
-__version__ = '3.2.1'
+__version__ = '3.3'
 
 VERSION = __version__
 
diff --git a/serial/serialposix.py b/serial/serialposix.py
index cff3417..bb2fa03 100644
--- a/serial/serialposix.py
+++ b/serial/serialposix.py
@@ -302,7 +302,7 @@
         """Set communication parameters on opened port."""
         if self.fd is None:
             raise SerialException("Can only operate on a valid file descriptor")
-            
+
         # if exclusive lock is requested, create it before we modify anything else
         if self._exclusive is not None:
             if self._exclusive:
@@ -312,7 +312,7 @@
                     raise SerialException(msg.errno, "Could not exclusively lock port {}: {}".format(self._port, msg))
             else:
                 fcntl.flock(self.fd, fcntl.LOCK_UN)
-            
+
         custom_baud = None
 
         vmin = vtime = 0                # timeout is done via select
diff --git a/serial/serialutil.py b/serial/serialutil.py
index 322b7e3..e4df90f 100644
--- a/serial/serialutil.py
+++ b/serial/serialutil.py
@@ -227,7 +227,7 @@
         self.dsrdtr = dsrdtr
         self.inter_byte_timeout = inter_byte_timeout
         self.exclusive = exclusive
-        
+
         # watch for backward compatible kwargs
         if 'writeTimeout' in kwargs:
             self.write_timeout = kwargs.pop('writeTimeout')
@@ -312,7 +312,7 @@
     def exclusive(self):
         """Get the current exclusive access setting."""
         return self._exclusive
-    
+
     @exclusive.setter
     def exclusive(self, exclusive):
         """Change the exclusive access setting."""
