diff --git lib/OpenLayers/Format/Filter/v1.js lib/OpenLayers/Format/Filter/v1.js
index 5556c16..d0eb67c 100644
--- lib/OpenLayers/Format/Filter/v1.js
+++ lib/OpenLayers/Format/Filter/v1.js
@@ -227,7 +227,7 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
         var obj = {};
         this.readChildNodes(node, obj);
         var value = obj.value;
-        if(!value) {
+        if(value === undefined) {
             value = this.getChildValue(node);
         }
         return value;
diff --git tests/Format/Filter/v1.html tests/Format/Filter/v1.html
index 5471717..a596521 100644
--- tests/Format/Filter/v1.html
+++ tests/Format/Filter/v1.html
@@ -3,6 +3,35 @@
     <script src="../../../lib/OpenLayers.js"></script>
     <script type="text/javascript">
     
+    function test_PropertyIsBetween(t) {
+
+        t.plan(3);
+
+        var test_xml =
+            '<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">' +
+                '<ogc:PropertyIsBetween>' +
+                    '<ogc:PropertyName>number</ogc:PropertyName>' +
+                    '<ogc:LowerBoundary>' +
+                        '<ogc:Literal>0</ogc:Literal>' +
+                    '</ogc:LowerBoundary>' +
+                    '<ogc:UpperBoundary>' +
+                        '<ogc:Literal>100</ogc:Literal>' +
+                    '</ogc:UpperBoundary>' +
+                '</ogc:PropertyIsBetween>' +
+            '</ogc:Filter>';
+
+        var parser = new OpenLayers.Format.Filter.v1();
+        var xml = new OpenLayers.Format.XML();
+        var filter = parser.read(xml.read(test_xml).documentElement);
+
+        t.eq(filter.type, OpenLayers.Filter.Comparison.BETWEEN,
+             "read correct type");
+        t.eq(filter.lowerBoundary, 0,
+             "record correct lower boundary value");
+        t.eq(filter.upperBoundary, 100,
+             "record correct upper boundary value");
+    }
+
 
     function test_Intersects(t) {
         
