Hi David,
I don't have the time to test this at the moment, but could it be that when you are specifying the "bn" variable, you are re-referencing it from the selection, and the "*" in the block name is no longer escaped as in your original selection set? Perhaps (strcat "`" bn)?
I'm not sure if that will work. I don't know if the string when referenced from the ename is already escaped? I guess it wouldn't hurt to give it a try.
In any case Ronjonp's solution is probably a better choice (He posted while I was replying LOL).