diff --git a/app/assets/javascripts/discourse/controllers/header.js.es6 b/app/assets/javascripts/discourse/controllers/header.js.es6
index c77211444..c414227b6 100644
--- a/app/assets/javascripts/discourse/controllers/header.js.es6
+++ b/app/assets/javascripts/discourse/controllers/header.js.es6
@@ -80,27 +80,18 @@ function addFlagProperty(prop) {
   _flagProperties.pushObject(prop);
 }
 
-let _appliedFlagProps = false;
-HeaderController.reopenClass({
-  create() {
-    // We only want to change the class the first time it's created
-    if (!_appliedFlagProps && _flagProperties.length) {
-      _appliedFlagProps = true;
-
-      const args = _flagProperties.slice();
-      args.push(function() {
-        let sum = 0;
-        _flagProperties.forEach((fp) => sum += (this.get(fp) || 0));
-        return sum;
-      });
-      HeaderController.reopen({ flaggedPostsCount: Ember.computed.apply(this, args) });
-    }
-    return this._super.apply(this, Array.prototype.slice.call(arguments));
-  }
-});
+function applyFlaggedProperties() {
+  const args = _flagProperties.slice();
+  args.push(function() {
+    let sum = 0;
+    _flagProperties.forEach((fp) => sum += (this.get(fp) || 0));
+    return sum;
+  });
+  HeaderController.reopen({ flaggedPostsCount: Ember.computed.apply(this, args) });
+}
 
 addFlagProperty('currentUser.site_flagged_posts_count');
 addFlagProperty('currentUser.post_queue_new_count');
 
-export { addFlagProperty };
+export { addFlagProperty, applyFlaggedProperties };
 export default HeaderController;
diff --git a/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6 b/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6
new file mode 100644
index 000000000..577768dc3
--- /dev/null
+++ b/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6
@@ -0,0 +1,7 @@
+import { applyFlaggedProperties } from 'discourse/controllers/header';
+
+export default {
+  name: 'apply-flagged-properties',
+  after: 'map-routes',
+  initialize: applyFlaggedProperties
+};
diff --git a/app/assets/javascripts/discourse/initializers/map-routes.js.es6 b/app/assets/javascripts/discourse/initializers/map-routes.js.es6
index 3f08fa2a9..e83537569 100644
--- a/app/assets/javascripts/discourse/initializers/map-routes.js.es6
+++ b/app/assets/javascripts/discourse/initializers/map-routes.js.es6
@@ -2,6 +2,8 @@ import { mapRoutes } from 'discourse/router';
 
 export default {
   name: "map-routes",
+  after: 'inject-objects',
+
   initialize(container, app) {
     app.register('router:main', mapRoutes());