diff --git a/src/declarative/qml/v4/qv4bindings.cpp b/src/declarative/qml/v4/qv4bindings.cpp
index 2c26fff3d89d6da193e384c238c5ceef12f785c6..319dbf51bbc62093683b75470b8a37f2f64265e7 100644
--- a/src/declarative/qml/v4/qv4bindings.cpp
+++ b/src/declarative/qml/v4/qv4bindings.cpp
@@ -256,7 +256,8 @@ void QV4Bindings::Binding::destroy()
 
 int QV4Bindings::Binding::propertyIndex() const
 {
-    return property;
+    //mask out the type information set for value types
+    return property & 0xFF00FFFF;
 }
 
 QObject *QV4Bindings::Binding::object() const
diff --git a/src/declarative/qml/v4/qv4bindings_p.h b/src/declarative/qml/v4/qv4bindings_p.h
index 58dd4328af720118384c6f3da78b376eeaf29bb3..a447481a4c2ab31a02b03e70014551583df9296c 100644
--- a/src/declarative/qml/v4/qv4bindings_p.h
+++ b/src/declarative/qml/v4/qv4bindings_p.h
@@ -96,6 +96,8 @@ private:
         int index:30;
         bool enabled:1;
         bool updating:1;
+        // Encoding of property is coreIndex | (propType << 16) | (valueTypeIndex << 24)
+        // propType and valueTypeIndex are only set if the property is a value type property
         int property;
         QObject *scope;
         int line;