Merged trunk changes r654-660 into the new-backend branch.
Experimental development branch for complete rewrite of back-end code relating to database and snippets editing engines.