no lo has intentado en internet explorer (msie), no? en msie no te va a funcionar porque no puedes cambiar el tipo de los inputs. el siguiente cambio debe funcionarte en cualquier navegador.
Código:
function pasar(){
var input = document.createElement("input");
var pun = document.frm.elements[0];
input.setAttribute("name", "pun");
input.setAttribute("type", (frm.check.checked)? "text": "password");
input.setAttribute("value", pun.value);
pun.parentNode.replaceChild(input, pun);
}