diff --git a/Text/Search/Sphinx.hs b/Text/Search/Sphinx.hs
--- a/Text/Search/Sphinx.hs
+++ b/Text/Search/Sphinx.hs
@@ -31,7 +31,7 @@
 import Text.Search.Sphinx.Configuration (Configuration(..), defaultConfig)
 import qualified Text.Search.Sphinx.ExcerptConfiguration as ExConf (ExcerptConfiguration(..))
 import Text.Search.Sphinx.Get (times, getResult, readHeader, getStr, getTxt)
-import Text.Search.Sphinx.Put (num, num64, enum, list, numC, strC, foldPuts,
+import Text.Search.Sphinx.Put (num, num64, float, enum, list, numC, strC, foldPuts,
                               numC64, stringIntList, str, txt, cmd, verCmd)
 
 import Data.Binary.Put (Put, runPut)
@@ -126,7 +126,7 @@
     T.ERROR n -> return $ T.Error n (errorMessage conv response)
   where
     getResults response conv = runGet ((length docs) `times` getTxt conv) response
-    errorMessage conv response = runGet (getTxt conv) (BS.drop 4 response)
+    errorMessage conv response = runGet (getTxt conv) response
 
     makeBuildExcerpt putExcerpt = do
       cmd    T.ScExcerpt
@@ -239,7 +239,7 @@
         T.ERROR n -> return $ T.Error n (errorMessage conv response)
       where
         getResults response conv = runGet (numQueries `times` getResult conv) response
-        errorMessage conv response = runGet (getTxt conv) (BS.drop 4 response)
+        errorMessage conv response = runGet (getTxt conv) response
 
 
 -- | Combine results from 'runQueries' into matches.
@@ -317,6 +317,7 @@
 
       putFilter_ f@(T.FilterValues attr values)  ex = putFilter__ f attr (list num64) [values] ex
       putFilter_ f@(T.FilterRange  attr min max) ex = putFilter__ f attr num64 [min, max] ex
+      putFilter_ f@(T.FilterFloatRange  attr min max) ex = putFilter__ f attr float [min, max] ex
 
       putFilter__ filter attr puter values exclude = do
         str attr
diff --git a/Text/Search/Sphinx/Put.hs b/Text/Search/Sphinx/Put.hs
--- a/Text/Search/Sphinx/Put.hs
+++ b/Text/Search/Sphinx/Put.hs
@@ -7,6 +7,7 @@
 import Data.ByteString.Lazy.Char8 (pack)
 import qualified Data.ByteString.Lazy as BS
 import qualified Text.Search.Sphinx.Types as T
+import Data.Binary.IEEE754 
 
 import Data.Text (Text)
 import qualified Data.Text.ICU.Convert as ICU
@@ -14,6 +15,8 @@
 
 num     = putWord32be . fromIntegral
 num64 i = putWord64be $ fromIntegral i
+
+float = putFloat32be 
 
 enum :: Enum a => a -> Put
 enum = num . fromEnum
diff --git a/Text/Search/Sphinx/Types.hs b/Text/Search/Sphinx/Types.hs
--- a/Text/Search/Sphinx/Types.hs
+++ b/Text/Search/Sphinx/Types.hs
@@ -102,7 +102,7 @@
 data Filter = ExclusionFilter Filter
             | FilterValues String [Int64]
             | FilterRange  String Int64 Int64
-            -- TODO | FilterFloatRange attr Float Float
+            | FilterFloatRange String Float Float
             deriving (Show)
 
 -- | shortcut for creating an exclusion filter
@@ -110,7 +110,7 @@
 
 fromEnumFilter (FilterValues _ _)  = 0
 fromEnumFilter (FilterRange _ _ _) = 1
--- fromEnumFilter (FilterFloatRange _ _ _) = 2
+fromEnumFilter (FilterFloatRange _ _ _) = 2
 
 -- | Attribute types
 data AttrT = AttrTUInt          -- unsigned 32-bit integer
diff --git a/sphinx.cabal b/sphinx.cabal
--- a/sphinx.cabal
+++ b/sphinx.cabal
@@ -1,5 +1,5 @@
 Name:            sphinx
-Version:         0.6.0.1
+Version:         0.6.0.2
 Synopsis:        Haskell bindings to the Sphinx full-text searching daemon.
 Description:     Haskell bindings to the Sphinx full-text searching daemon. Compatible with Sphinx version 2.0
 Category:        Text, Search, Database
@@ -36,4 +36,3 @@
 
   if flag(version-1-1-beta)
     cpp-options:   -DONE_ONE_BETA
-
