             item.key = keyEncoding.decode item.key if keyEncoding
             item.value = valueEncoding.decode item.value if valueEncoding
       else
-        result = result.map valueDecode if valueEncoding
+        result = result.map valueEncoding.decode.bind(valueEncoding) if valueEncoding
       callback null, result
   putAsync: (key, value, options, callback) ->
     keyEncoding = @keyEncoding options

      if valueEncoding or keyEncoding
        result.map (item)->
          item.key = keyEncoding.decode item.key if keyEncoding
          item.value = valueDecode item.value if valueEncoding
    else
      result = result.map valueDecode if valueEncoding
    result
  putSync: (key, value, options) ->
    keyEncoding = @keyEncoding options

  mGetAsync: (keys, options, callback) ->
    keyEncoding = @keyEncoding options
    valueEncoding = @valueEncoding options
    keys = keys.map keyEncoding.encode.bind(keyEncoding) if keyEncoding
    that = @
    super keys, options, (err, result)->
