diff --git a/NEWS b/NEWS
index e6147bff908342b158988f30ebcc1011b38b2463_TkVXUw==..7353eec3a4a7e804d215c4f3a277a25c80ff13bb_TkVXUw== 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,6 @@
 Releases
 ========
 
-v1.11.0 (DD MM YYYY)
---------------------
+v1.10.3 (20th Sep 2013)
+-----------------------
 
@@ -17,15 +17,7 @@
 
-* #98: On Windows, when interacting with the PuTTY PAgeant, Paramiko now
-  creates the shared memory map with explicit Security Attributes of the user,
-  which is the same technique employed by the canonical PuTTY library to avoid
-  permissions issues when Paramiko is running under a different UAC context
-  than the PuTTY Ageant process. Thanks to Jason R. Coombs for the patch.
-* #100: Remove use of PyWin32 in `win_pageant` module. Module was already
-  dependent on ctypes for constructing appropriate structures and had ctypes
-  implementations of all functionality. Thanks to Jason R. Coombs for the
-  patch.
-* #87: Ensure updates to `known_hosts` files account for any updates to said
-  files after Paramiko initially read them. (Includes related fix to guard
-  against duplicate entries during subsequent `known_hosts` loads.) Thanks to
-  `@sunweaver` for the contribution.
+* #162: Clean up HMAC module import to avoid deadlocks in certain uses of
+  SSHClient. Thanks to Gernot Hillier for the catch & suggested
+  fix.
+* #36: Fix the port-forwarding demo to avoid file descriptor errors. Thanks to
+  Jonathan Halcrow for catch & patch.
 
@@ -31,4 +23,4 @@
 
-v1.10.2 (DD MM 2013)
---------------------
+v1.10.2 (26th Jul 2013)
+-----------------------
 
@@ -34,6 +26,6 @@
 
-* #153, #67: Warn on parse failure when reading known_hosts
-  file. Thanks to `@glasserc` for patch.
+* #153, #67: Warn on parse failure when reading known_hosts file. Thanks to
+  `@glasserc` for patch.
 * #146: Indentation fixes for readability. Thanks to Abhinav Upadhyay for catch
   & patch.
 
diff --git a/demos/forward.py b/demos/forward.py
index e6147bff908342b158988f30ebcc1011b38b2463_ZGVtb3MvZm9yd2FyZC5weQ==..7353eec3a4a7e804d215c4f3a277a25c80ff13bb_ZGVtb3MvZm9yd2FyZC5weQ== 100644
--- a/demos/forward.py
+++ b/demos/forward.py
@@ -78,5 +78,7 @@
                 if len(data) == 0:
                     break
                 self.request.send(data)
+                
+        peername = self.request.getpeername()
         chan.close()
         self.request.close()
@@ -81,6 +83,6 @@
         chan.close()
         self.request.close()
-        verbose('Tunnel closed from %r' % (self.request.getpeername(),))
+        verbose('Tunnel closed from %r' % (peername,))
 
 
 def forward_tunnel(local_port, remote_host, remote_port, transport):
diff --git a/paramiko/__init__.py b/paramiko/__init__.py
index e6147bff908342b158988f30ebcc1011b38b2463_cGFyYW1pa28vX19pbml0X18ucHk=..7353eec3a4a7e804d215c4f3a277a25c80ff13bb_cGFyYW1pa28vX19pbml0X18ucHk= 100644
--- a/paramiko/__init__.py
+++ b/paramiko/__init__.py
@@ -55,7 +55,7 @@
 
 
 __author__ = "Jeff Forcier <jeff@bitprophet.org>"
-__version__ = "1.10.1"
+__version__ = "1.10.2"
 __license__ = "GNU Lesser General Public License (LGPL)"
 
 
diff --git a/paramiko/packet.py b/paramiko/packet.py
index e6147bff908342b158988f30ebcc1011b38b2463_cGFyYW1pa28vcGFja2V0LnB5..7353eec3a4a7e804d215c4f3a277a25c80ff13bb_cGFyYW1pa28vcGFja2V0LnB5 100644
--- a/paramiko/packet.py
+++ b/paramiko/packet.py
@@ -33,5 +33,4 @@
 from paramiko.message import Message
 
 
-got_r_hmac = False
 try:
@@ -37,4 +36,3 @@
 try:
-    import r_hmac
-    got_r_hmac = True
+    from r_hmac import HMAC
 except ImportError:
@@ -40,3 +38,4 @@
 except ImportError:
-    pass
+    from Crypto.Hash.HMAC import HMAC
+
 def compute_hmac(key, message, digest_class):
@@ -42,8 +41,5 @@
 def compute_hmac(key, message, digest_class):
-    if got_r_hmac:
-        return r_hmac.HMAC(key, message, digest_class).digest()
-    from Crypto.Hash import HMAC
-    return HMAC.HMAC(key, message, digest_class).digest()
+    return HMAC(key, message, digest_class).digest()
 
 
 class NeedRekeyException (Exception):