Como fazer o maldito c:set funcionar no jstl 1.0?

Eu usava esse c:set:

<c:set var='imprimeBotao' value='${empty mostrarcaixanovamensagem}' /> 
    <c:set var='eLinhaEscolhida' value='${linhaselecionada eq linha.id}' /> 

para usar nesse c:if

 <c:if test='${not eLinhaEscolhida or imprimeBotao}' > 

Agora, tentando fazer o desgraçado do tomcat 4 entender, estou tentando, segundo sugestão de um post perdido na internet, usar a c_rt

 <c_rt:if test='<%= new Boolean(session.getAttribute("mostrarcaixanovamensagem") == null || 
    !(String)session.getAttribute("linhaselecionada").equals(Integer.toString(linha.getId())))  %>' >

O primeiro teste é fácil, o problema é que “linha” é a variável de um c:forEach onde esse código está inserido, e eu não consigo enxergá-la de dentro expressão jsp. Mesmo que eu troque o c:forEach por c_rt:forEach…
Alguma outra idéia? O meu caso é de migrar para tomcat 4, no tomcat 5 rodava… :cry:
Aliás, alguém conhece um provedor de hospedagem que tenha o tomcat 5 e não cobre 3 meses adiantado??

Bom provedor :
Iron Internet .: http://www.iron.com.br/
Uso para meus clientes: Plano linux + Tomcat 5.0.28 + MySql +JSP+jSTL e logo logo vou montar um portal usando JSF .

            Gosto deles devido suporte e estabilidade do servidor 24/7 de verdade...

Valeu a dica Willian. Estou na segunda tentativa, se não der certo, tento a sua indicação.