diff --git a/src/network/serverpackethandler.cpp b/src/network/serverpackethandler.cpp
index 7e348a94d134f8a961e83f1342e850bece9cc630..ef99a634f5c824169f63651c5b6a0546c4dc7e16 100644
--- a/src/network/serverpackethandler.cpp
+++ b/src/network/serverpackethandler.cpp
@@ -762,14 +762,14 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt)
 
 	RemoteClient *client = getClient(pkt->getPeerId());
 
-	for (u16 i = 0; i < count; i++) {
-		if ((s16)pkt->getSize() < 1 + (i + 1) * 6)
-			throw con::InvalidIncomingDataException
+	if ((s16)pkt->getSize() < 1 + (int)count * 6) {
+		throw con::InvalidIncomingDataException
 				("GOTBLOCKS length is too short");
-		v3s16 p;
+	}
 
+	for (u16 i = 0; i < count; i++) {
+		v3s16 p;
 		*pkt >> p;
-
 		client->GotBlock(p);
 	}
 }
@@ -865,13 +865,14 @@ void Server::handleCommand_DeletedBlocks(NetworkPacket* pkt)
 
 	RemoteClient *client = getClient(pkt->getPeerId());
 
-	for (u16 i = 0; i < count; i++) {
-		if ((s16)pkt->getSize() < 1 + (i + 1) * 6)
-			throw con::InvalidIncomingDataException
+	if ((s16)pkt->getSize() < 1 + (int)count * 6) {
+		throw con::InvalidIncomingDataException
 				("DELETEDBLOCKS length is too short");
+	}
+
+	for (u16 i = 0; i < count; i++) {
 		v3s16 p;
 		*pkt >> p;
-
 		client->SetBlockNotSent(p);
 	}
 }