       (thrift/assert-domain database domain-name)
       (try (let [^Domain dom (db/domain-get database domain-name)
                  serializer (.serializer dom)
-                 key-seq    (map #(.deserialize serializer %) keys)]
+                 key-seq    (map (fn [^ByteBuffer x]
+                                   (let [ret (byte-array (.remaining x))]
+                                     (.get x ret)
+                                     (.deserialize serializer ret)))
+                                 keys)]
              (if-let [val-seq (direct-multiget database domain-name key-seq)]
                (doall (map thrift/mk-value val-seq))
                (throw (thrift/domain-not-loaded-ex))))
-           (catch RuntimeException _
+           (catch RuntimeException e
+             (log/error e "Thrown by directKryoMultiGet.")
              (throw (thrift/wrong-host-ex)))))
 
     (directMultiGet [_ domain-name keys]

           [elephantdb.common.database Database]
           [elephantdb.common.domain Domain]
           [elephantdb.generated DomainNotFoundException
            DomainNotLoadedException HostsDownException WrongHostException]
           [elephantdb.generated.keyval ElephantDB$Client 
            ElephantDB$Iface ElephantDB$Processor])
  (:gen-class))

        (multi-get get-fn
                   database
                   domain-name
                   (map (fn [^ByteBuffer x] (.array x))
                        key-seq))))

    (multiGetInt [this domain-name key-seq]
