I have another weird problem with TNet, and this time I'll be sure to flood you with information.

It might be related
to another problem I have, but I wanted to start a new thread "to make it clean."
I have a project with two scenes; Game and Disconnect. The latter is empty, only showing a GUIText "You are now disconnected", while the former has a cube (for ground), a directional light and a "Connection" object.
The "Connection" object has two components attached to it: a TNManager, with the Player prefab attached to it, and a ConnectionController script, which is pretty basic and looks like this:
using UnityEngine;
using TNet;
public class ConnectionController : MonoBehaviour {
void Start () {
TNManager.Connect( "127.0.0.1:5127" );
}
void OnNetworkConnect ( bool success, string message ) {
if ( success ) {
TNManager.JoinChannel( 1, "Game" );
}
}
void OnNetworkJoinChannel ( bool success, string message ) {
if ( success ) {
TNManager.Create( "Prefabs/Player", false );
}
}
}
Connecting/disconnecting works just fine, and I can mention that my client (workstation) is a MacBook Pro running the latest version of OSX, the latest version of Unity3D, and have the latest version of TNet (1.9.0b).
The server is running Debian 6.0.9, and is
not running on 127.0.0.1 as mentioned in the code above, but I want certain things to be a secret.

But - as mentioned - connecting and disconnecting works just fine (or so it seems, at least.)
The Player prefab has two components attached to it; a TNObject (id = 0) and a PlayerController script, which looks like this:
using UnityEngine;
using TNet;
public class PlayerController : TNBehaviour {
static public PlayerController instance;
private CharacterController characterController;
private Camera playerCamera;
void Awake () {
Debug.Log ( "PlayerController.Awake()" );
if ( TNManager.isThisMyObject ) {
instance = this;
characterController = GetComponent<CharacterController>();
playerCamera = GetComponentInChildren<Camera>();
Instantiate( Resources.Load("Prefabs/UI Root") );
}
}
The "UI Root" prefab has nothing attached to it, except the standard DF-GUI stuff. I know I probably should use NGUI, but I had to choose which one to spend $90 on, and I went for DF-GUI. Sorry about that.

Now - back to the issue at hand.
Every now and then - most of the time, it seems - when I play the game, the Player is instantiated twice, and they are assigned two different IDs. I've attached a screenshot.
Any ideas why this is happening?
UPDATE: It might be worth mentioning that when this happens, the server says that only one client is connected.
UPDATE #2: I added some debug messages in TNManager.cs, and the second Create() method is being called twice, but I'm 200% sure that Create() is being called only once from "my end" (ie. in the ConnectionController script.)
UPDATE #3: After some more debugging, I was wrong about the 200%.

The OnNetworkJoinChannel() in my ConnectionController script is actually being called twice, but the OnNetworkConnect() is called only once when that happens. In what cirumstances can that happen?