diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
index fac19af..812b75e 100644
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
+++ b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
@@ -25,15 +25,15 @@
 public class CustomDataProvider extends AbstractDataProvider {
 	static DataModelService dataModelService = new DataModelService() {
 		public Object toModelType(Object data) {
-			throw new UnsupportedOperationException();
+			return null;
 		}
 
 		public Object loadModelType(String className) {
-			throw new UnsupportedOperationException();
+			return null;
 		}
 
 		public Object toModelPropertyType(Object object, String propertyName) {
-			throw new UnsupportedOperationException();
+			return null;
 		}
 	};
 
@@ -41,6 +41,9 @@
 	protected DynamicObject object;
 
 	public Object getData(String path) {
+		if (path == null) {
+			return this;
+		}
 		return getData(getObjectInstance(), path);
 	}
 
@@ -108,7 +111,7 @@
 	}
 
 	public DynamicObject getObjectInstance() {
-		if (object == null) {
+		if (object == null && objectType != null) {
 			try {
 				object = (DynamicObject) objectType.newInstance();
 			} catch (Exception e) {
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
index f19cbb4..a70e09b 100644
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
+++ b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
@@ -31,6 +31,7 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IDataProvider;
 import org.eclipse.xwt.XWT;
 import org.eclipse.xwt.XWTException;
 import org.eclipse.xwt.internal.core.ScopeManager;
@@ -225,11 +226,12 @@
 			if (valueType instanceof Class<?>) {
 				type = (Class<?>) valueType;
 			}
-		}
-		else if (target instanceof Class<?>) {
+		} else if (target instanceof Class<?>) {
 			type = (Class<?>)target;			
-		}
-		else {
+		} else if (target instanceof IDataProvider) {
+			IDataProvider dataProvider = (IDataProvider) target;
+			type = (Class<?>) toType(dataProvider.getData(null));			
+		} else {
 			type = target.getClass();
 		}
 		if (type == null) {
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
index 4e0b0bc..10313e5 100644
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
+++ b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
@@ -174,6 +174,10 @@
 			}
 			dataProvider = XWT.findDataProvider(value);
 			Object dataValue = value;
+			if (value instanceof IDataProvider) {
+				IDataProvider dataProvider = (IDataProvider) value;
+				dataValue = dataProvider.getData(null);
+			}
 			currentPath = null;
 			Object type = elementType;
 			String[] segments = expressionPath.getSegments();
