thanks very much for all the suggestions on this one - it turns out that somewhat embarassingly that i'd left some old code languishing in functions.php that was causing the problem. both filters are now working exactly as they should.