I tried to simplify matters to see where things are going wrong, and thus updated the headers_remove with fixed values (no mysql lookup) as following headers_remove = ${if or { { <{$spam_score_int}{1} } \ { <{$spam_score_int}{20}{$value} } \ { eq {0}{20}{$value} } \ } {X-Spam-Score:X-Spam-Report} } the result, message: virtual_domains router failed to expand "${if or { { <{$spam_score_int}{1} } { <{$spam_score_int}{20}{$value} } { eq {0}{20}{$value}} } {X-Spam-Score:X-Spam-Report} }": missing } at end of condition inside "or" group I also tried it without the {$value} on the second and third condition inside the OR, and the result is message: virtual_domains router failed to expand "${if or { { <{$spam_score_int}{1} } { <{$spam_score_int}{20} } { eq {0}{20}} } {X-Spam-Score:X-Spam-Report} }": missing } at end of string Could someone please point out what I am doing wrong? Thanks SS