diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.3.2
+-----
+* Bug fix for `getBit`
+
 0.3.1
 -----
 * Fixed dependency bounds
diff --git a/bits.cabal b/bits.cabal
--- a/bits.cabal
+++ b/bits.cabal
@@ -1,6 +1,6 @@
 name:          bits
 category:      Data, Serialization
-version:       0.3.1
+version:       0.3.2
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
diff --git a/src/Data/Bits/Coding.hs b/src/Data/Bits/Coding.hs
--- a/src/Data/Bits/Coding.hs
+++ b/src/Data/Bits/Coding.hs
@@ -117,8 +117,8 @@
 getBit :: MonadGet m => Coding m Bool
 getBit = Coding $ \ k i b ->
   if i == 0
-  then getWord8 >>= \b' -> ((k $! testBit b' 7) $! 7) $! shiftR b' 1
-  else ((k $! testBit b 7) $! i - 1) $! shiftR b 1
+  then getWord8 >>= \b' -> ((k $! testBit b' 7) $! 7) $! shiftL b' 1
+  else ((k $! testBit b 7) $! i - 1) $! shiftL b 1
 {-# INLINE getBit #-}
 
 instance MonadGet m => MonadGet (Coding m) where
