Why won't this weapon sway script work?

I’m trying to get this script to work, but it says “NullReferenceException: Object reference not set to the instance of an object” On line 16. Please help, and thanks ahead of time!

public var MoveAmount : float = 1;

public var MoveSpeed : float = 2;

public var GUN: GameObject;

public var MoveOnX : float;

public var MoveOnY : float;

public var DefaultPos : Vector3;

public var NewGunPos : Vector3;
function Start(){

DefaultPos = transform.localposition;   
}

function Update () {

    MoveOnX = Input.GetAxis("Mouse X") * Time.deltaTime * MoveAmount;

    MoveOnY = Input.GetAxis("Mouse Y") * Time.deltaTime * MoveAmount;

    NewGunPos = new Vector3 (DefaultPos.x+MoveOnX, DefaultPos.y+MoveOnY, DefaultPos.z);

    GUN.transform.localPosition = Vector3.Lerp(GUN.transform.localPosition, NewGunPos, MoveSpeed*Time.deltaTime);
}

One of your problems is how you are using Lerp(). The final parameter of Lerp() uses a value between 0 and 1. Larger values are truncated so only the fractional part is used. For most uses, this value needs to increase or decrease over time. Time.deltaTime, since it is the time since the last frame, will not steadily increase or decrease.Change Time.deltaTime to Time.time;