How to avoid Collisions with seams

I've been searching for an answer to this for a while and have yet to find a solution. I'm sure there is something very simple I am missing.

My player character is simply a Capsule Collider completely physics controlled. When he jumps and hits the ground, OnCollisionEnter(Collision collision) is activated. Inside the OnCollisionEnter event, I alter the associated sprite animation with a JumpEnd animation. This works fine except OnCollisionEnter is being activated when he runs across the seams of my tracks(Box Colliders). I thought Vertex Snapping would eliminate the seams but this is obviously not the case.

Am I doing something wrong regarding handling seams between the boxes I am using for ground? Or is it my code that is the problem?

Here is the OnCollisionEnter code:

    //Check for collisions to determine when the player is on the ground
    public void OnCollisionEnter (Collision collision)
            //Calculate angle between the up vector and the collision contact's normal
            float collisionAngle = Vector3.Angle (collision.contacts[0].normal, Vector3.up);
            if (collisionAngle < 40.0) {
                //If the angle difference is small enough, accept collision as hitting the ground
                onGround = true;  //Player is grounded
                playerRigidbody.drag = onGroundDrag;  //Restore original drag value
                playerAnime = PlayerAnime.JumpEnd2; //Alter Animation

        //From Docs...Prints the two objects colliding
        foreach (ContactPoint contact in collision.contacts) 
            print ( + " hit " +;
            Debug.DrawRay (contact.point, contact.normal, Color.white);

Thanks for any help.

It would be a bug if OnCollisionEnter wasn't called, since it's a different object, regardless of whether there are seams or not. You could try something like checking for height differences, so only falling + colliding makes the JumpEnd animation play, and simply moving horizontally doesn't.