Weird Queue behavour

I’ve just started with Unity 3D and C# and can understand most code due to my expirience with Objective C and AS3.
I’m following a tutorial however ( RTS Tutorial - Part 10 ) and it’s not working as it should.
The goal is to add a unit to a building queue and after some seconds the unit is created.

View buildingqueue each frame

protected override void Update () {
		base.Update ();
		ProcessBuildQueue ();
	}

Code called when the icon of the unit is clicked, the log shows me that there is 1 element in the queue

protected void CreateUnit(string unitName){
		buildQueue.Enqueue (unitName);
		Debug.Log ("CreateUnit " + buildQueue.Count);
	}

This is where it gets weird, this Log tells me there are 0 elements in my queue. So where did that 1 element go in the 1 frame delay there is between these 2 methods ?

protected void ProcessBuildQueue(){
Debug.Log("ProcessBuildQueue "+buildQueue.Count);
		if (buildQueue.Count > 0) {
			currentBuildProgress += Time.deltaTime * ResourceManager.buildSpeed;

			if(currentBuildProgress > maxBuildProgress){
				if(player) player.addUnit(buildQueue.Dequeue(), spawnPoint, transform.rotation);
				currentBuildProgress = 0.0f;
			}
		}
	}

There’s a very good chance that I’m missing something small, maybe not even in the code ?
Anyway, any help would be fantastic.

Perhaps the most useful piece of information here would be the declaration of buildQueue. A few questions: These are all in the same class, right? Second: nothing else modifies buildQueue anywhere, right? (Whether you think it’s being called or not, I mean) Third: maxBuildProgress is > 0, right? (Make sure it is with a log)

What happens if you enqueue 5 or 10 units to the build queue? Do any of them ever show up from within Update()? Or do they disappear from the queue one per frame?

This is how the buildQueue is declared.

protected Queue< string > buildQueue;

protected override void Awake(){
base.Awake ();
		buildQueue = new Queue<string>();
}

Yes, these are all methods in the same class.

The CreateUnit method is the only method that modifies buildQueue on each click on the corresponding icon.
maxBuildProgress is currently set to 5 if I set the log in the CreateUnit method, however if I log in the ProcessBuildQueue method it gives me 0 each frame.

If I queue 10 units the createUnit tells me there are 10 units in the queue, and that’s all that happens with it. The update still thinks there count of the queue is 0.

It’s probably a silly mistake on my behalf, but I just can’t seem to find it.