Android Tilt Causing Falling Through Ground

Our character is falling through the ground when use tilt on an android tablet, but works just fine when we are using the keyboard to move. Any idea why this is happening? This is the script that we are moving with.

Edit: It appears to be passing through all Mesh Colliders. Anybody know a way around this?

    var dir : Vector3 = Vector3.zero;

    // we assume that device is held parallel to the ground
    // and Home button is in the right hand

    // remap device acceleration axis to game coordinates:
    //  1) XY plane of the device is mapped onto XZ plane
    //  2) rotated 90 degrees around Y axis
    dir.x = -Input.acceleration.y;
    dir.z = Input.acceleration.x;

    // clamp acceleration vector to unit sphere
    if (dir.sqrMagnitude > 1)
        dir.Normalize();

    // Make it move 10 meters per second instead of 10 meters per frame...
    dir *= Time.deltaTime;

    // Move object
    transform.Translate (dir * speed);

I believe I fixed it for anybody that has this issue in the future. I changed the script to this:

var controller : CharacterController = GetComponent(CharacterController);
var dir : Vector3 = Vector3.zero;

// we assume that device is held parallel to the ground
// and Home button is in the right hand

// remap device acceleration axis to game coordinates:
//  1) XY plane of the device is mapped onto XZ plane
//  2) rotated 90 degrees around Y axis
dir.x = -Input.acceleration.y;
dir.z = Input.acceleration.x;

// clamp acceleration vector to unit sphere
if (dir.sqrMagnitude > 1)
dir.Normalize();

// Make it move 10 meters per second instead of 10 meters per frame...
dir *= Time.deltaTime;

// Move object
controller.Move (dir * speed);