Procedure RenameProperty Lparameters tcProjectFile, tcOldPropertyName, tcNewPropertyName Use (tcProjectFile) scan over each SCX file llRenameReturn=FixPropertyName(tcOldPropertyName, tcNewPropertyName) && See your method in previous post if llRenameReturn=.t. llDeleteReturn=DeleteProperty(OldPropertyName) && Don't know how to do this endif endscan So it would be a two-step process: 1. Manually rename the property in the base class 2. Do RenameProperty('MyProjtect.pjx', 'stupid_old_name', 'cBetterName') >Matt -- > >The result is as you fear, I believe. > >When you rename the property in your base form class and then go revisit a form based on that class, you'll see that that property (with the new name) shows up as default -- not the value that you had set it to. > >And, curiously, if you then go back to the base form class and change the name back -- presto, the values you set in the sub-class re-appear! (Not that it does you any good). > >If this is really important, you can do the following: > >(1) Instead of re-naming your property in your base class, just create the new property. > >(2) Then, copy the old property value to the new one, as follows (invoke this for each form) ><pre>Modify Form (oFile.Name) Nowait >FixPropertyName() >Activate Window 'Form' >Keyboard '{CTRL+w}' >DoEvents > >Procedure FixPropertyName > Local laObjects(1), loForm > ASelObj(laAobjects,1) > loForm = laAobjects(1) > loForm.(newpropertyname) = loForm.(oldpropertyname) >endproc>