Why can't I set transform.rotation to a new value?

I want to just explicitly set my transform's rotation to a value and hence instantly rotate it. However, I've tried everything from Rotate() (which is not what I want to do since it's over time) and eulerAngles. The eulerAngles did change but(!) the rotation did not.

This code:

    function Teleport(arr : Array){
    print("Arr[0]: " + arr[0]);
    print("Arr[1]: " + arr[1]);
    var newTelePos = arr[0];
    var newTeleRot = arr[1];
    print("newTelePos :" + newTelePos);
    print("newTeleRot :" + newTeleRot);
    transform.position = newTelePos;
    transform.rotation = newTeleRot;
    print("transform.position :" + transform.position);
    print("transform.rotation :" + transform.rotation);
    networkView.RPC("TeleportRPC",RPCMode.Others, newTelePos, newTeleRot); 

Does not return any errors. However the transform.rotation is not altered at all?

EDIT: This is where the array comes from, this script is attached to my portal.

var teleportPos : Vector3;
var teleportRot : Quaternion;

function OnTriggerEnter  (other : Collider) 
    var arr = new Array();

    other.SendMessage("Teleport", arr, SendMessageOptions.DontRequireReceiver); 

Maybe I'm missing something here, but why bother with the whole array business at all? Wouldn't it be easier to simply pass the portal's transform information directly to the object?

I'm thinking something along the lines of:

function OnTriggerEnter  (other : Transform) 
other.transform.rotation = transform.rotation;
other.transform.position = transform.position;

and the portal's details should be passed without any fuss...I think.