Help with Collision Detection

Ok, I give up. This should be so easy, but for the life of me can't figure out the best method. Basically, think of a single stationary block and a bouncing ball (ala Araknoids). I need to determine if the ball should reverse Y direction if it hits on the top or reverse X direction if it hits the block on the side. My basic game loop is:
1) Render ball
2) Animate ball (applies x and y speed to x&y vals)
3) Go through blocks and see if ball has collided
It's step 3 that is messing up. I seem to find collisions from top or bottom find (ptIntersect.y is equal to the top or bottom coord of block), but the side collision is giving me problems.
Here are some images.
1) This shows the CollisionMask sample with graphics changed to look like what I am using. This is the ball hitting the block from the top. Note that the ball overlaps the block. This is because the Y speed is set to something like 5 pixels so it has the possibility of overlapping by at most 4 pixels (I move it to the top edge if a collision is detected, but collision detection occurs with overlapping).
2) This shows the same example with the ball coming from the right. Things to notice: the SpriteCollision Y value is the same in 2nd image as first so I can't use that to determine which direction I should bounce the ball.
Well, I hope this post made sense. Any help I can get I'd really appreciate.
Oh, and no, the game I am working on is not another breakout/araknoid clone. Something entirely different.
-Mark
1) Render ball
2) Animate ball (applies x and y speed to x&y vals)
3) Go through blocks and see if ball has collided
It's step 3 that is messing up. I seem to find collisions from top or bottom find (ptIntersect.y is equal to the top or bottom coord of block), but the side collision is giving me problems.
Here are some images.
1) This shows the CollisionMask sample with graphics changed to look like what I am using. This is the ball hitting the block from the top. Note that the ball overlaps the block. This is because the Y speed is set to something like 5 pixels so it has the possibility of overlapping by at most 4 pixels (I move it to the top edge if a collision is detected, but collision detection occurs with overlapping).

2) This shows the same example with the ball coming from the right. Things to notice: the SpriteCollision Y value is the same in 2nd image as first so I can't use that to determine which direction I should bounce the ball.

Well, I hope this post made sense. Any help I can get I'd really appreciate.
Oh, and no, the game I am working on is not another breakout/araknoid clone. Something entirely different.
-Mark