Thanks for the reply. I have a webmethod server side: <WebMethod> _ Public Shared Function GetDataSet() As DataSet 'Get dataset here... Return ds End Function Client Side: function GetData() { PageMethods.GetDataSet(onSuccess, onFail); } function onSuccess(result) { alert(result.tables[0].rows[0].ColumnName); } function onFail(e) { alert(e.get_message()); } Stepping through, the webmethod runs without error but I get a Deserialization error alert from the onFail function. I have done what the AJAX.NET example I've seen here http://www.ajaxpro.info/Examples/DataSets/default.aspx[^] suggests but I get the above error. Is there something else I need to do, webconfig setting etc?