diff --git a/src/invitation.c b/src/invitation.c
index 6ed17ca1..74987045 100644
--- a/src/invitation.c
+++ b/src/invitation.c
@@ -688,10 +688,6 @@ make_names:
 
 	check_port(name);
 
-	fprintf(stderr, "Invitation succesfully accepted.\n");
-	shutdown(sock, SHUT_RDWR);
-	success = true;
-
 ask_netname:
 	if(ask_netname) {
 		fprintf(stderr, "Enter a new netname: ");
@@ -720,6 +716,7 @@ ask_netname:
 	return true;
 }
 
+
 static bool invitation_send(void *handle, uint8_t type, const char *data, size_t len) {
 	while(len) {
 		int result = send(sock, data, len, 0);
@@ -748,6 +745,12 @@ static bool invitation_receive(void *handle, uint8_t type, const char *msg, uint
 		case 1:
 			return finalize_join();
 
+		case 2:
+			fprintf(stderr, "Invitation succesfully accepted.\n");
+			shutdown(sock, SHUT_RDWR);
+			success = true;
+			break;
+
 		default:
 			return false;
 	}
diff --git a/src/protocol_auth.c b/src/protocol_auth.c
index f8a3cc3b..1623e75e 100644
--- a/src/protocol_auth.c
+++ b/src/protocol_auth.c
@@ -174,6 +174,7 @@ static bool finalize_invitation(connection_t *c, const char *data, uint16_t len)
 	fclose(f);
 
 	logger(DEBUG_CONNECTIONS, LOG_INFO, "Key succesfully received from %s (%s)", c->name, c->hostname);
+	sptps_send_record(&c->sptps, 2, data, 0);
 	return true;
 }