backport from ftw.contentpage