Thanks Eric. I've made some modifications to your code and got it working - see final section of the attached notebook. I would, however, still like to understand why using the variable 'expression' in my original notebook failed whereas pasting the evaluated form of 'expression' gave the desired result. I suspect it'll be to do with the evaluation process. But since using variables for keys in Slot is a useful thing to be able to do so I'd like to understand how it works (or, in this case, doesn't). Thanks again, Ian