diff --git a/api/user.go b/api/user.go
index 695ed3ed99e0742c313f585f5ec8a8faf946c315..2f807265e708cb037fa0986cecd95aecd7ed798d 100644
--- a/api/user.go
+++ b/api/user.go
@@ -38,7 +38,7 @@ func createNewUser(rng *fastRNG.StreamGenerator, cmix, e2e *cyclic.Group) user.U
 
 	wg := sync.WaitGroup{}
 
-	wg.Add(6)
+	wg.Add(4)
 
 	go func(){
 		defer wg.Done()
@@ -91,38 +91,33 @@ func createNewUser(rng *fastRNG.StreamGenerator, cmix, e2e *cyclic.Group) user.U
 			jww.FATAL.Panicf(err.Error())
 		}
 	}()
+	wg.Wait()
 
 	// Salt, UID, etc gen
-	go func(){
-		defer wg.Done()
-		transmissionSalt = make([]byte, SaltSize)
-		stream := rng.GetStream()
-		n, err := stream.Read(transmissionSalt)
-		stream.Close()
-		if err != nil {
-			jww.FATAL.Panicf(err.Error())
-		}
-		if n != SaltSize {
-			jww.FATAL.Panicf("transmissionSalt size too small: %d", n)
-		}
-	}()
+	stream := rng.GetStream()
+	transmissionSalt = make([]byte, SaltSize)
 
+	n, err := stream.Read(transmissionSalt)
 
-	go func(){
-		defer wg.Done()
-		receptionSalt = make([]byte, SaltSize)
-		stream := rng.GetStream()
-		n, err := stream.Read(receptionSalt)
-		stream.Close()
-		if err != nil {
-			jww.FATAL.Panicf(err.Error())
-		}
-		if n != SaltSize {
-			jww.FATAL.Panicf("transmissionSalt size too small: %d", n)
-		}
-	}()
+	if err != nil {
+		jww.FATAL.Panicf(err.Error())
+	}
+	if n != SaltSize {
+		jww.FATAL.Panicf("transmissionSalt size too small: %d", n)
+	}
 
-	wg.Wait()
+	receptionSalt = make([]byte, SaltSize)
+
+	n, err = stream.Read(receptionSalt)
+
+	if err != nil {
+		jww.FATAL.Panicf(err.Error())
+	}
+	if n != SaltSize {
+		jww.FATAL.Panicf("transmissionSalt size too small: %d", n)
+	}
+
+	stream.Close()
 
 	transmissionID, err := xx.NewID(transmissionRsaKey.GetPublic(), transmissionSalt, id.User)
 	if err != nil {