         (Just _, handles)  -> do
           case Map.member h handles of
             False -> return True
-            True  -> loopClientUntil client h (Nothing) v 
+            True  -> do 
+              back' <- performBackoff back (backoffCap . getConnectOptions $ client)
+              loopClientUntil client back' h (Nothing) v
     False -> return True
 
 -- | Peek at the value of an 'MVar' and return its contents if full.

      hyperclientDestroy hc
      sequence_ $ Map.elems handles 
      putMVar c (Nothing, Map.empty)

-- | Runs hyperclient_loop exactly once, setting the appropriate MVar.
loopClient' :: Bool -> Client -> IO (Maybe Handle)

import Data.Map (Map)
import qualified Data.Map as Map

import Control.Concurrent (yield, threadDelay)
import Control.Concurrent.MVar

import Data.Word (Word16)
