Why does my movement appear to not be framerate dependent?

I have the following chunk of code in a project of mine:

    /// <summary>
    /// Apply movement to the player. The player is able to move forward, backwards, 
    /// left and right. The player cannot jump.
    /// </summary>
    public void ApplyMovement()
    {
        // Move the player forward, or backwards, depending on which
        // key is pressed, and what direction the player is facing.
        if(Input.GetButton("Forward"))
        {
            this._MovementVector += this.transform.forward * this.MovementSpeed * Time.deltaTime;
        }
        else if(Input.GetButton("Backwards"))
        {
            this._MovementVector += -this.transform.forward * this.MovementSpeed * Time.deltaTime;
        }
        
        // Move the player to the left or the right, depending on which
        // key is pressed, and what direction the player is facing.
        if(Input.GetButton("Left"))
        {
            this._MovementVector += -this.transform.right * this.MovementSpeed * Time.deltaTime;
        }
        else if(Input.GetButton("Right"))
        {
            this._MovementVector += this.transform.right * this.MovementSpeed * Time.deltaTime;
        }

        // Check to see if the player is not grounded. If the player is not
        // grounded, then apply gravity to the movement vector. If the player
        // is grounded, then set the movement vector's gravity to 0.
        if(!this._CharacterController.isGrounded)
        {
            this._MovementVector.y -= this.GravityAcceleration * Time.deltaTime;
        }
        else
        {
            this._MovementVector.y = 0;
        }

        // Check to see if the player has pressed the jump key, and is grounded.
        // If the player is not grounded, then a jump is not possible.
        if (Input.GetButton("Jump") && this._CharacterController.isGrounded)
        {
            this._MovementVector.y = this.JumpForce;
        }

        this._CharacterController.Move(this._MovementVector * Time.deltaTime);
        this._MovementVector = new Vector3(0, this._MovementVector.y, 0);
    }

Right now it works fine, until I start to get a low framerate. Once my framerate starts to lower, my movement speed and jump height increase drastically. I am sure that my code is framerate dependent, but that doesn’t seem to be the case. What is going on here, and how can I fix it?

Remove the multiplication with Time.deltaTime in “this._CharacterController.Move(this._MovementVector * Time.deltaTime);” You already factor in Time.deltaTime earlier, so doing it again would increase everything more than what you want.