diff --git a/uffd/invite/views.py b/uffd/invite/views.py
index d6500a70938a9f3f95471a031929cb0f4dc63f54..a0a00e86edf8d6e6dd3f5244ee0529a5dc689430 100644
--- a/uffd/invite/views.py
+++ b/uffd/invite/views.py
@@ -15,7 +15,6 @@ from uffd.navbar import register_navbar
 from uffd.ratelimit import host_ratelimit, format_delay
 from uffd.signup.views import signup_ratelimit
 
-raise ValueError
 
 bp = Blueprint('invite', __name__, template_folder='templates', url_prefix='/invite/')
 
diff --git a/uffd/navbar.py b/uffd/navbar.py
index dc46b76355f9d0cbfc0b3037a42a1d56b11bed81..f5e244bea0dd6e2eb69c0cbc392dc288025eaec2 100644
--- a/uffd/navbar.py
+++ b/uffd/navbar.py
@@ -1,9 +1,6 @@
-# pylint: disable=invalid-name
-navbarList = []
-# pylint: enable=invalid-name
-
 def setup_navbar(app):
-	app.jinja_env.globals['getnavbar'] = lambda: [n for n in navbarList if n['visible']()]
+	app.navbarList = []
+	app.jinja_env.globals['getnavbar'] = lambda: [n for n in app.navbarList if n['visible']()]
 
 # iconlib can be 'bootstrap'
 # ( see: http://getbootstrap.com/components/#glyphicons )
@@ -12,22 +9,35 @@ def setup_navbar(app):
 # visible is a function that returns "True" if this icon should be visible in the calling context
 def register_navbar(name, iconlib='fa', icon=None, group=None, endpoint=None, blueprint=None, visible=None):
 	def wrapper(func):
-		urlendpoint = endpoint
-		if not endpoint:
-			# pylint: disable=protected-access
-			if blueprint:
-				urlendpoint = "{}.{}".format(blueprint.name, func.__name__)
-			else:
-				urlendpoint = func.__name_
+		def deferred_call(state):
+			urlendpoint = endpoint
+			if not endpoint:
+				# pylint: disable=protected-access
+				if blueprint:
+					urlendpoint = "{}.{}".format(blueprint.name, func.__name__)
+				else:
+					urlendpoint = func.__name_
 			# pylint: enable=protected-access
-		item = {}
-		item['iconlib'] = iconlib
-		item['icon'] = icon
-		item['group'] = group
-		item['endpoint'] = urlendpoint
-		item['name'] = name
-		item['blueprint'] = blueprint
-		item['visible'] = visible or (lambda: True)
-		navbarList.append(item)
+			item = {}
+			item['iconlib'] = iconlib
+			item['icon'] = icon
+			item['group'] = group
+			item['endpoint'] = urlendpoint
+			item['name'] = name
+			item['blueprint'] = blueprint
+			item['visible'] = visible or (lambda: True)
+
+			state.app.navbarList.append(item)
+
+		if blueprint:
+			blueprint.record_once(deferred_call)
+		else:
+			class StateMock:
+				def __init__(self, app):
+					self.app = app
+			from flask import current_app
+			deferred_call(StateMock(current_app))
+
 		return func
-	return wrapper
+
+	return wrapper
\ No newline at end of file