diff --git a/src/models/event.js b/src/models/event.js
index 617ebdda3021b752bcc6334b35d38e2cae5ac9da..53b46845c9b576b2a3efbfbed27b686d41520845 100644
--- a/src/models/event.js
+++ b/src/models/event.js
@@ -24,6 +24,10 @@ export function getCurrentSignup() {
   return this.currentSignup;
 }
 
+export function currentSignupHasLoaded() {
+  return this.currentSignupLoaded;
+}
+
 export function checkCurrentSignup() {
   const queryString = m.buildQueryString({
     where: JSON.stringify({
@@ -40,6 +44,7 @@ export function checkCurrentSignup() {
     } : {},
   }).then((result) => {
     [this.currentSignup] = result._items;
+    this.currentSignupLoaded = true;
     log(this.currentSignup);
   });
 }
diff --git a/src/views/eventDetails.js b/src/views/eventDetails.js
index da6967dc802964aa34ceb08c4e84c9bbacea0c4c..4bb546f7f2703ccd4d6960771cffa65e9d31692e 100644
--- a/src/views/eventDetails.js
+++ b/src/views/eventDetails.js
@@ -17,7 +17,7 @@ class EventSignupForm {
       return m('div');
     }
     if (isLoggedIn()) {
-      if (typeof events.getCurrentSignup() === 'undefined') {
+      if (events.currentSignupHasLoaded() && typeof events.getCurrentSignup() === 'undefined') {
         return m('button', { onclick() { events.signupCurrent(); } }, 'signup');
       }
     } else if (events.getCurrent().allow_email_signup) {