Character controller and Terrain

We are developing 2D endless running type game and we are facing problem with character controller and terrain mesh collider. The player falls through ground.

If terrain is flat or a player goes down, the player doesn’t fall through ground. Problem comes when the player goes up. I attached screen shot of game play that player goes through terrain collider.

I’m using character controller Move script from this reference.

Does anyone has solution for this problem?
Thanks in advance.

I have figured out why my character falls down. As getyour411 suggested that hard reset, I have read and played with moveDirection.

Main thing is character controller checks collision while it moves. But my character is only does jump so it never detects that collision.
So I added little movement right and left side. Now it works what I expected.

 private float x_Axis = 0.01f;   // Very little value that moves right and left.
.....
.... 
 void Update(){
....
      if (controller.isGrounded) {
                            //Switching right and left
                            x_Axis = -1 * x_Axis;
                           //That line i have changed
    			            moveDirection = new Vector3(x_Axis, 0, 0);         
                            if (Input.GetButton("Jump"))
                                  moveDirection.y = jumpSpeed;
    
                    }
                 moveDirection.y -= gravity * Time.deltaTime;
                 controller.Move(moveDirection * Time.deltaTime);

}