NaN exception when spawning soldiers

Im getting a strange error randomly when they spawn, what is “transform.position assign attempt for ‘spawnSoldier(Clone)’ is not valid. Input position is {NaN, 0.262370.NaN}” i have no idea how to fix this :S

Heres my code

#pragma strict

var prefab:GameObject; 
var soldierMax:int;
var soldierCount:int; 
private var respawnPoints:GameObject[];
var maxSpawnDelay:int;
var soldiersKilled:int;

function Start () {
 	respawnPoints = GameObject.FindGameObjectsWithTag("SoldierSpawn");
 	soldierCount = GameObject.FindGameObjectsWithTag("Soldier").length;	
}

function Update () {
	if(soldierCount < soldierMax) {
		respawnSoldier();		
	}		
}

function respawnSoldier() {
	while (soldierCount < soldierMax) {
		Instantiate(prefab,respawnPoints[Random.Range(0,respawnPoints.Length)].transform.position,Quaternion.identity);
		soldierCount++;
		yield WaitForSeconds(Random.Range(3,maxSpawnDelay));
	}
}

Try with this code…

var prefab:GameObject;
var soldierMax:int=5;
var soldierCount:int;
private var respawnPoints:GameObject;
var maxSpawnDelay:int=3;
var soldiersKilled:int;

function Start () {
respawnPoints = GameObject.FindGameObjectsWithTag(“SoldierSpawn”);
soldierCount = GameObject.FindGameObjectsWithTag(“Soldier”).length;
}

function Update () {
if(soldierCount < respawnPoints.Length){
respawnSoldier();
}
}
function respawnSoldier(){
while (soldierCount < respawnPoints.Length) {
Instantiate(prefab,respawnPoints[soldierCount].transform.position,Quaternion.identity);
soldierCount++;
yield WaitForSeconds(Random.Range(0,maxSpawnDelay));
}
}