diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index fff35144bbeb570645b67b8090f488e0c1fea764..26f0383c0e700981302f9650734ca1035cecf333 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -1933,7 +1933,16 @@ static void CL_LoadReceivedSavegame(void)
 #ifndef NONET
 static void SendAskInfo(INT32 node)
 {
-	const tic_t asktime = I_GetTime();
+	tic_t asktime;
+
+	if (node != 0 && node != BROADCASTADDR &&
+			cv_rendezvousserver.string[0])
+	{
+		I_NetRequestHolePunch();
+	}
+
+	asktime = I_GetTime();
+
 	netbuffer->packettype = PT_ASKINFO;
 	netbuffer->u.askinfo.version = VERSION;
 	netbuffer->u.askinfo.time = (tic_t)LONG(asktime);
@@ -1942,12 +1951,6 @@ static void SendAskInfo(INT32 node)
 	// now allowed traffic from the host to us in, so once the MS relays
 	// our address to the host, it'll be able to speak to us.
 	HSendPacket(node, false, 0, sizeof (askinfo_pak));
-
-	if (node != 0 && node != BROADCASTADDR &&
-			cv_rendezvousserver.string[0])
-	{
-		I_NetRequestHolePunch();
-	}
 }
 
 serverelem_t serverlist[MAXSERVERLIST];