diff --git a/xxmutils/restoreContacts.go b/xxmutils/restoreContacts.go
index 4c7a9d119d3bf958865a3374228c5df5c32abc87..f5b6f1a9791a6396f26a695d78571ceb3db7bd01 100644
--- a/xxmutils/restoreContacts.go
+++ b/xxmutils/restoreContacts.go
@@ -232,12 +232,12 @@ func LookupContact(userID *id.ID, udManager *ud.Manager,
 	var result *contact.Contact
 	var err error
 	lookupCB := func(c contact.Contact, myErr error) {
-		defer waiter.Unlock()
-		defer extLookupCB(c, myErr)
 		if myErr != nil {
 			err = myErr
 		}
 		result = &c
+		waiter.Unlock()
+		extLookupCB(c, myErr)
 	}
 	// Take lock once to make sure I will wait
 	waiter.Lock()