diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,9 @@
 # Changelog for Hedis
 
+## 0.12.1
+
+* PR #133. Fixes to stream commands
+
 ## 0.12.0
 
 * PR #130. Bring back ability to connect via a Unix Socket
diff --git a/hedis.cabal b/hedis.cabal
--- a/hedis.cabal
+++ b/hedis.cabal
@@ -1,5 +1,5 @@
 name:               hedis
-version:            0.12.0
+version:            0.12.1
 synopsis:
     Client library for the Redis datastore: supports full command set,
     pipelining.
@@ -11,7 +11,7 @@
     advantages:
     .
     [Compatibility with Latest Stable Redis:] Hedis is intended
-        to be used with the latest stable version of Redis (currently 3.2).
+        to be used with the latest stable version of Redis (currently 5.0).
     Most redis commands (<http://redis.io/commands>) are available as
     haskell functions, although MONITOR and SYNC are intentionally
     omitted. Additionally, a low-level API is
diff --git a/src/Database/Redis/ManualCommands.hs b/src/Database/Redis/ManualCommands.hs
--- a/src/Database/Redis/ManualCommands.hs
+++ b/src/Database/Redis/ManualCommands.hs
@@ -799,7 +799,7 @@
     -> TrimOpts
     -> m (f ByteString)
 xaddOpts key entryId fieldValues opts = sendRequest $
-    ["XADD", key, entryId] ++ optArgs ++ fieldArgs
+    ["XADD", key] ++ optArgs ++ [entryId] ++ fieldArgs
     where
         fieldArgs = concatMap (\(x,y) -> [x,y]) fieldValues
         optArgs = case opts of
@@ -937,9 +937,9 @@
     :: (RedisCtx m f)
     => ByteString -- ^ stream
     -> ByteString -- ^ group name
-    -> ByteString -- ^ message ID
+    -> [ByteString] -- ^ message IDs
     -> m (f Integer)
-xack stream groupName messageId = sendRequest ["XACK", stream, groupName, messageId]
+xack stream groupName messageIds = sendRequest $ ["XACK", stream, groupName] ++ messageIds
 
 xrange
     :: (RedisCtx m f)
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -675,7 +675,7 @@
             stream = "somestream",
             records = [StreamsRecord{recordId = "123-0", keyValues = [("key", "value")]}]
         }]
-    xack "somestream" "somegroup" "123-0" >>=? 1
+    xack "somestream" "somegroup" ["123-0"] >>=? 1
     xreadGroup "somegroup" "consumer1" [("somestream", ">")] >>=? Nothing
     xgroupSetId "somestream" "somegroup" "0" >>=? Ok
     xgroupDelConsumer "somestream" "somegroup" "consumer1" >>=? 0
