I have created a Web Service: DEFINE CLASS Fishers_AccpacWebInterface AS Session OLEPUBLIC In certain of the functions I open tables in order to update them, in SHARED mode: USE <tablename> ALIAS <alias> SHARED. I then FLOCK() or RLOCK() as required. Then I APPEND BLANK and GATHER MEMVAR or REPLACE specific fields. e.g. USE ARDATA\ARCUST01 ALIAS a_arcust SHARED IF FLOCK("a_arcust") SELECT a_arcust APPEND BLANK GATHER MEMVAR MEMO UNLOCK IN a_arcust ENDIF When I run the class from VFP by declaring a newobject of the class locally, this code executes perfectly, but when I run it as a Web Server whenever I try to APPEND BLANK or REPLACE I get an error: Error: 1429 OLE IDispatch exception code 0 from Fishers_AccpacWebInterface ....... Cannot update the cursor A_ARCUST, since it is read-only. 111.. Chris Palmer