@Eric – I know you were asking Lorna, but I thought I’d interject. I would say that unless architecturally your application cannot be saved (and I really do mean cannot be saved, as opposed to just being a bit messy,) it is never a good idea to rewrite something if you can avoid it.

Even if by the time you’re done refactoring, your code is unrecognisable, it’s still worth doing as you’ll retain some of the project’s learnings and history as you go. Little workarounds, bug fixes, security fixes and so on are often missed when rewriting rather than just refactoring what you already have.