diff --git a/com.woltlab.wcf/defaultStyle.tar b/com.woltlab.wcf/defaultStyle.tar
index 268e6e1bc06..401f31bb388 100644
Binary files a/com.woltlab.wcf/defaultStyle.tar and b/com.woltlab.wcf/defaultStyle.tar differ
diff --git a/com.woltlab.wcf/templates/__devtoolsLanguageChooser.tpl b/com.woltlab.wcf/templates/__devtoolsLanguageChooser.tpl
index baa2c105c09..ccd9c1c6112 100644
--- a/com.woltlab.wcf/templates/__devtoolsLanguageChooser.tpl
+++ b/com.woltlab.wcf/templates/__devtoolsLanguageChooser.tpl
@@ -1,5 +1,5 @@
-{* The `system_pageHeader` renders this chooser on the server. *}
-{if ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS && !$__wcf->user->isGuest() && $__wcf->getStyleHandler()->getStyle()->usesClassicPageHeader()}
+{* The `system_pageHeader` renders this chooser on the server, the new page footers host it instead. *}
+{if ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS && !$__wcf->user->isGuest() && $__wcf->getStyleHandler()->getStyle()->usesClassicPageHeader() && $__wcf->getStyleHandler()->getStyle()->usesClassicPageFooter()}
+ {/if}
+{/if}
+
+{capture assign='__pageFooterBoxes'}
+ {if !$boxesFooter|empty}
+ {unsafe:$boxesFooter}
+ {/if}
+
+ {foreach from=$__wcf->getBoxHandler()->getBoxes('footer') item=box}
+ {unsafe:$box->render()}
+ {/foreach}
+{/capture}
+{assign var='__pageFooterBoxes' value=$__pageFooterBoxes|trim}
+
+{capture assign='__pageFooterCopyright'}
+ {event name='footerContents'}
+
+ {if ENABLE_BENCHMARK}
+ {include file='shared_benchmark'}
+ {/if}
+
+ {include file='pageFooterCopyright'}
+{/capture}
+{assign var='__pageFooterCopyright' value=$__pageFooterCopyright|trim}
+
+{capture assign='__pageFooterPreferences'}
+ {if $__wcf->getStyleHandler()->showColorSchemeSelector()}
+ {* The browser keeps the choice of a guest, `ColorSchemeSwitch` checks it. *}
+ {if $__wcf->user->isGuest()}
+ {assign var='__pageFooterColorScheme' value=''}
+ {else}
+ {assign var='__pageFooterColorScheme' value=$__wcf->getStyleHandler()->getColorScheme()}
+ {/if}
+
+ {/if}
+
+ {if $__wcf->getStyleHandler()->showStyleChanger()}
+
+ {/if}
+
+ {* Members only switch the language through the developer tools. *}
+ {if $__wcf->getLanguage()->getLanguages()|count > 1 && ($__wcf->user->isGuest() || (ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS))}
+
+ {/if}
+{/capture}
+{assign var='__pageFooterPreferences' value=$__pageFooterPreferences|trim}
+
+{capture assign='__pageFooterAd'}
+ {if MODULE_WCF_AD && $__disableAds|empty}
+ {unsafe:$__wcf->getAdHandler()->getAds('com.woltlab.wcf.footer.bottom')}
+ {/if}
+{/capture}
+{assign var='__pageFooterAd' value=$__pageFooterAd|trim}
+
+{if $__pageFooterBoxes || $__pageFooterCopyright || $__pageFooterPreferences || $__pageFooterAd}
+
+{/if}
diff --git a/com.woltlab.wcf/templates/system_pageHeaderUser.tpl b/com.woltlab.wcf/templates/system_pageHeaderUser.tpl
index 932679e6ac9..9da0c6369eb 100644
--- a/com.woltlab.wcf/templates/system_pageHeaderUser.tpl
+++ b/com.woltlab.wcf/templates/system_pageHeaderUser.tpl
@@ -13,8 +13,8 @@
>{icon size=32 name='magnifying-glass'} {lang}wcf.global.search{/lang}
- {* Members only switch the language through the developer tools. *}
- {if $__wcf->getLanguage()->getLanguages()|count > 1 && ($__wcf->user->isGuest() || (ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS))}
+ {* Members only switch the language through the developer tools. The new page footers host the switch instead. *}
+ {if $__wcf->getLanguage()->getLanguages()|count > 1 && ($__wcf->user->isGuest() || (ENABLE_DEBUG_MODE && ENABLE_DEVELOPER_TOOLS)) && $__wcf->getStyleHandler()->getStyle()->usesClassicPageFooter()}