USE YourTable nNumFields = AFIELDS(aFlds) DIMENSTION nNewArray[nNumFields+1,18] *** Let's say you want to put your new field in 3th position *** AFIELDS gives array with 18 elemets ACOPY(aFlds,nNewArray,1,18*2,1) && 18*2 - first two field definitions of the original table nNewArray[3, 1] = "MyNewField" && See HELP nNewArray[3, 2] = "C" nNewArray[3, 4] = 10 nNewArray[3, 5] = 0 ..... nNewArray[3,18] = 0 ACOPY(aFlds,nNewArray,18*3,-1,18*4) CREATE TABLE Temptable FROM ARRAY nNewArray SELECT TempTable APPEND FROM YourTable *** DO ALL INDEX ON Here CLOSE DATA ALL ERASE YourTable.* RENAME TempTable.DBF TO YourTable.DBF RENAME TempTable.FPT TO YourTable.FPT && If you have a Memo/GENERAL/BLOB fields RENAME TempTable.CDX TO YourTable.CDXNever tested this. Be sure you have a good beackup before running this.