Hi, I'm writing some SKILL where I need to copy cell views so I can modify them without touching the original. I decided that the friendliest way to do this was to create a scratch library, copy to the library and do what I need and then delete the library after I'd finished. This is great and it works fine, but I have two problems. When my code gets to the point of deleting the library using ddDeleteObj(), the LSW turns grey and has forgotten which techlib it has got open. When I open a layout cell all is well again, but it's a bit inconvenient. This is all getting called from a menu item in a layout view, but I have verified that it does the same when I type the code into the CIW: scratchLib = dbCreateLib("scratch") techSetTechLibName( scratchLib "mytech" ) ddDeleteObj( scratchLib ) Without the call to techSetTechLibName() all is well. I know the techlib I had open before, but can't figure out how to make the LSW open it. Any suggestions? The other problem is terribly tedious :) Each time you use ddDeleteObj to delete a library, it leaves a line in the cds.lib: #Removed by ddDeleteObj: DEFINE scratch /home/ral/scratch As it stands, this means my scratch library is going to leave a huge mess in my cds.lib as I'm likely to use this function quite a bit. Is there any way to suppress that line or am I going to have to come up with a different solution? One more thing - I accidently left one too many close parentheses part way through my code when I was fixing it up with skill lint. Lint passed it with a score of 100 but the CIW quite rightly contained an error complaining. Is this a bug or does lint not check for matched parentheses? Thanks, Roger