HBASE-9746 Addendum.
diff --git a/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java b/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
index 3cb6d2d..ef95622 100644
--- a/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
+++ b/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
@@ -110,7 +110,7 @@
 
   /**
    * Try to create a Zookeeper connection. Turns any exception encountered into a
-   * {@link KeeperException.OperationTimeoutException} so it can retried.
+   * KeeperException.OperationTimeoutException so it can retried.
    * @return The created Zookeeper connection object
    * @throws KeeperException
    */
@@ -118,8 +118,8 @@
     if (this.zk == null) {
       try {
         this.zk = new ZooKeeper(quorumServers, sessionTimeout, watcher);
-      } catch (Exception uhe) {
-        LOG.warn("Unable to create ZooKeeper Connection", uhe);
+      } catch (IOException ex) {
+        LOG.warn("Unable to create ZooKeeper Connection", ex);
         throw new KeeperException.OperationTimeoutException();
       }
     }
@@ -132,6 +132,8 @@
       LOG.info("Closing dead ZooKeeper connection, session" +
         " was: 0x"+Long.toHexString(zk.getSessionId()));
       zk.close();
+      // reset the Zookeeper connection
+      zk = null;
     }
     checkZk();
     LOG.info("Recreated a ZooKeeper, session" +