diff --git a/mssql-simple.cabal b/mssql-simple.cabal
--- a/mssql-simple.cabal
+++ b/mssql-simple.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 7e21b82d01e699c1397575c7711a08b3f1da63a9bb3de6aa289435456f38bd0f
+-- hash: fa5d1ef6133a1e7953b1b0d2bcebee5d30cc1e56cf2cfd77bf02bd73a9dcaaec
 
 name:           mssql-simple
-version:        0.4.0.0
+version:        0.4.0.1
 synopsis:       SQL Server client library implemented in Haskell
 description:    Please see the README on GitHub at <https://github.com/mitsuji/mssql-simple#readme>
 category:       Database
diff --git a/src/Database/MSSQLServer/Query.hs b/src/Database/MSSQLServer/Query.hs
--- a/src/Database/MSSQLServer/Query.hs
+++ b/src/Database/MSSQLServer/Query.hs
@@ -79,23 +79,25 @@
   sendAll sock $ Put.runPut $ putClientMessage ps $ CMSqlBatch $ SqlBatch query
   TokenStreams tss <- readMessage sock $ Get.runGetIncremental getServerMessage
 
-  case parse resultSetParser tss of
-    [] -> case filter isTSError tss of
+  case filter isTSError tss of
+    [] -> case parse resultSetParser tss of
       [] -> error "sql: failed to parse token streams"
-      TSError info :_ -> throwIO $ QueryError info
-    (x,_):_ -> return x
+      (x,_):_ -> return x
+    TSError info :_ -> throwIO $ QueryError info
 
 
+
 rpc :: (RpcQuerySet a, RpcResponseSet b) => Connection -> a -> IO b
 rpc (Connection sock ps) queries = do
   sendAll sock $ Put.runPut $ putClientMessage ps $ CMRpcRequest $ toRpcRequest queries
   TokenStreams tss <- readMessage sock $ Get.runGetIncremental getServerMessage
 
-  case parse rpcResponseSetParser tss of
-    [] -> case filter isTSError tss of
+  case filter isTSError tss of
+    [] -> case parse rpcResponseSetParser tss of
       [] -> error "rpc: failed to parse token streams"
-      TSError info :_ -> throwIO $ QueryError info
-    (x,_):_ -> return x
+      (x,_):_ -> return x
+    TSError info :_ -> throwIO $ QueryError info
+
 
 
 nvarcharVal :: RpcParamName -> T.Text -> RpcParam T.Text
