diff --git a/manualtests/DataBindingTestbed/src/MyInitialView.mxml b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
index 67d5ac7..766cf31 100644
--- a/manualtests/DataBindingTestbed/src/MyInitialView.mxml
+++ b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
@@ -221,6 +221,14 @@
 			public var subVO1:BindableSubVO1;
 			public var subVO2:BindableSubVO2;
 			public var subVO3:BindableSubVO3;
+            
+            [Bindable]
+            public var classVO:BindableClassVO = new BindableClassVO();
+            [Bindable]
+            public var getterVO:BindableGetterVO = new BindableGetterVO();
+            [Bindable]
+            public var setterVO:BindableSetterVO = new BindableSetterVO();
+            
 		]]>
     </fx:Script>
 	<fx:Style>
@@ -311,7 +319,7 @@
 			<js:Label id="timerDemoSB7"  text="[WORKS] test nested instance timercount " />
 			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
 		</js:Container>
-		<js:Container width="500">
+		<js:Container width="500" height="60">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
@@ -327,6 +335,18 @@
 			<js:Label text="[WORKS] binding into local mxml instance of local bindable actionscript class:"/>
 			<js:Label id="mxmlBindableDemo1"  text="{mxmlTest.fieldofBindableMxmlTest}" />	
 		</js:Container>
+        <js:Container width="500">
+            <js:beads>
+                <js:VerticalLayout />
+            </js:beads>
+            <js:Label text="Should say fieldOfBindableClassVO below"/>
+            <js:Label id="mxmlBindableClassVO"  text="{classVO.fieldOfBindableClassVO}" />	
+            <js:Label text="Should say fieldOfBindableGetterVO below"/>
+            <js:Label id="mxmlBindableGetterVO"  text="{getterVO.fieldOfBindableGetterVO}" />	
+            <js:Label text="Should say fieldOfBindableSetterVO below"/>
+            <js:Label id="mxmlBindableSetterVO"  text="{setterVO.fieldOfBindableSetterVO}" />
+            <js:TextButton text="Append ! to strings" click="classVO.fieldOfBindableClassVO += '!';getterVO.fieldOfBindableGetterVO += '!';setterVO.fieldOfBindableSetterVO += '!'" />
+        </js:Container>
 		<js:Container width="500" id="errorReporter">
 			<js:beads>
 				<js:VerticalLayout />
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableClassVO.as b/manualtests/DataBindingTestbed/src/bindables/BindableClassVO.as
new file mode 100644
index 0000000..8dad869
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableClassVO.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	[Bindable]
+	public class BindableClassVO
+	{
+			
+
+		public var fieldOfBindableClassVO:String = "fieldOfBindableClassVO_value";
+
+	}
+}
\ No newline at end of file
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableGetterVO.as b/manualtests/DataBindingTestbed/src/bindables/BindableGetterVO.as
new file mode 100644
index 0000000..7097944
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableGetterVO.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableGetterVO
+	{
+		private var _fieldOfBindableGetterVO:String = "fieldOfBindableGetterVO_value";
+		
+		[Bindable]
+		public function get fieldOfBindableGetterVO():String
+		{
+			return _fieldOfBindableGetterVO;
+		}
+		
+		public function set fieldOfBindableGetterVO(value:String):void
+		{
+			_fieldOfBindableGetterVO = value;
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableSetterVO.as b/manualtests/DataBindingTestbed/src/bindables/BindableSetterVO.as
new file mode 100644
index 0000000..cc6c589
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableSetterVO.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSetterVO
+	{
+		private var _fieldOfBindableSetterVO:String = "fieldOfBindableSetterVO_value";
+		
+		public function get fieldOfBindableSetterVO():String
+		{
+			return _fieldOfBindableSetterVO;
+		}
+		
+		[Bindable]
+		public function set fieldOfBindableSetterVO(value:String):void
+		{
+			_fieldOfBindableSetterVO = value;
+		}
+
+	}
+}
\ No newline at end of file
