create cursor test (testID i, name c(20), height n(5,2)) oTest = createObject("oRecord","test") ? oTest.ofields.name oTest.ofields.name = "Smith" ? oTest.oFields.name && crash and burn here...we have renamed the object define class oRecord as custom procedure init lparameters lcAlias local laFields, lnFields, i dimension lafields[1] this.addobject("oFields","dfields") select (lcAlias) lnfields = afields(laFields) for i = 1 to lnfields && add property for each field to custom object this.ofields.addproperty(laFields[i,1]) ? lafields(i, 1) next i endproc enddefine define class dFields as custom enddefine>Hi Steve,