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