The collisions are broken in a couple of ways but I think they're quite literally corner cases having to do with the fact that the colliding objects are points with 0 width and height. Will implement collision of all four corners in the colliding square, though I vaguely forsee some more problems that may come from that. Perhaps it will make things easier, however, because I will be able to simply revert to oldx, oldy. Maybe this needs some sort of Verlet integration to do it in the easiest way possible.
Source removed; not everyone has blitz installed. Sorry to be a bother, the last thing I want is to annoy anybody.