diff --git a/json-rpc-generic.cabal b/json-rpc-generic.cabal
--- a/json-rpc-generic.cabal
+++ b/json-rpc-generic.cabal
@@ -1,5 +1,5 @@
 name:                json-rpc-generic
-version:             0.2.1.0
+version:             0.2.1.1
 synopsis:            Generic encoder and decode for JSON-RPC
 description:         This package contains generic encoder and decode for JSON-RPC
 homepage:            http://github.com/khibino/haskell-json-rpc-generic
diff --git a/src/Data/JsonRpc/Generic.hs b/src/Data/JsonRpc/Generic.hs
--- a/src/Data/JsonRpc/Generic.hs
+++ b/src/Data/JsonRpc/Generic.hs
@@ -22,10 +22,9 @@
 import Data.Set ((\\))
 import qualified Data.Set as Set
 import qualified Data.HashMap.Strict as HashMap
-import Data.Text (Text)
 import qualified Data.Text as T
 import Data.Aeson.Types
-  (FromJSON (..), ToJSON (..), GFromJSON, genericParseJSON, Parser, Options, Value (..))
+  (FromJSON (..), ToJSON (..), GFromJSON, genericParseJSON, Parser, Options (..), Value (..))
 import Data.Vector (Vector)
 import qualified Data.Vector as Vector
 
@@ -50,7 +49,7 @@
      []    ->   lift $ parseJSON Null
 
 
-type FieldName = Text
+type FieldName = String
 type FieldsW = Writer (DList FieldName)
 
 class GFieldSetJSON f where
@@ -84,7 +83,7 @@
                  => S1 s a p
                  -> FieldsW (S1 s a p)
 saveQueriedField m1  =  do
-  tell (pure . T.pack $ selName m1)
+  tell (pure $ selName m1)
   return m1
 
 instance GFieldSetJSON (K1 i a) where
@@ -99,7 +98,7 @@
   d rpcOpts opts v@(Object m)  =  do
     let (px, fs)  =  runWriter gFieldSet
         inv  =  Set.fromList (HashMap.keys m) \\
-                Set.fromList (DList.toList fs)
+                Set.fromList (map (T.pack . fieldLabelModifier opts) $ DList.toList fs)
     guard (allowNonExistField rpcOpts || Set.null inv)
       <|> fail ("object has illegal field: " ++ show (Set.toList inv))
     j  <-  genericParseJSON opts v
