diff --git a/Crypto/Cipher/AES/Haskell.hs b/Crypto/Cipher/AES/Haskell.hs
--- a/Crypto/Cipher/AES/Haskell.hs
+++ b/Crypto/Cipher/AES/Haskell.hs
@@ -154,11 +154,13 @@
 	| otherwise                = B.concat $ doChunks (coreDecrypt key) b
 
 doChunks :: (B.ByteString -> B.ByteString) -> B.ByteString -> [B.ByteString]
-doChunks f b =
-	let (x, rest) = B.splitAt 16 b in
-	if B.length rest >= 16
-		then f x : doChunks f rest
-		else [ f x ]
+doChunks f b
+    | B.null b  = []
+    | otherwise =
+        let (x, rest) = B.splitAt 16 b in
+        if B.length rest >= 16
+            then f x : doChunks f rest
+            else [ f x ]
 
 makeChunks :: B.ByteString -> [B.ByteString]
 makeChunks = doChunks id
diff --git a/cryptocipher.cabal b/cryptocipher.cabal
--- a/cryptocipher.cabal
+++ b/cryptocipher.cabal
@@ -1,5 +1,5 @@
 Name:                cryptocipher
-Version:             0.3.3
+Version:             0.3.4
 Description:         Symmetrical Block, Stream and PubKey Ciphers
 License:             BSD3
 License-file:        LICENSE
