Can't stop my character from walking through objects

Here is what I am working on:

http://www.littlefenris.com/v2/

My problem is the objects that are meant to stop the character from walking (the yellow blocks) only stop the character if you hit them from the top or bottom when walking in a diagonal direction. If you are walking straight left or right they stop the character just fine but if you hit the blocks while walking diagonally left or right the character walks through the object. If someone could help me figure this out (probably simple for someone w/ more AS experience than me) I would be eternally grateful.

var fenrisDirection = "down";
var speed = 4;
var totalHitSpots = 3;
//SCENE CONTROLS
scene_mc.onEnterFrame = function() {
	if (Key.isDown(Key.RIGHT)) {
		fenrisDirection = "right";
		this._x -= speed;
		foreGround_mc._x -= speed;
	}
	if (Key.isDown(Key.LEFT)) {
		fenrisDirection = "left";
		this._x += speed;
		foreGround_mc._x += speed;
	}
	if (Key.isDown(Key.UP)) {
		fenrisDirection = "up";
		this._y += speed;
		foreGround_mc._y += speed;
	}
	if (Key.isDown(Key.DOWN)) {
		fenrisDirection = "down";
		this._y -= speed;
		foreGround_mc._y -= speed;
	}
};
fenris_mc.onEnterFrame = function() {
	if (fenrisDirection == "right") {
		this.gotoAndStop("right");
	}
	if (fenrisDirection == "left") {
		this.gotoAndStop("left");
	}
	if (fenrisDirection == "up") {
		this.gotoAndStop("up");
	}
	if (fenrisDirection == "down") {
		this.gotoAndStop("down");
	}
	//STOP FENRIS FROM GOING OVER OBJECT 
	for(i = 1; i <= totalHitSpots; i++){
  	if ((fenrisDirection == "right") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
    	scene_mc._x += speed;
		foreGround_mc._x += speed;
	}
	if ((fenrisDirection == "left") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._x -= speed;
		foreGround_mc._x -= speed;
	}
	if ((fenrisDirection == "down") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._y += speed;
		foreGround_mc._y += speed;
	}
	if ((fenrisDirection == "up") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._y -= speed;
		foreGround_mc._y -= speed;
	}
	//scene_mc["hitSpot"+i+"_mc"]._visible = false;
}
}
this.onEnterFrame = function() {
	trace(fenrisDirection);
};

Again, my problem is when the character is walking in a diagonal direction and hits the yellow spots from their left or right sides. You can walk from the bottom or top diagonally and it stops the character just fine.

Thanks in advance for any help on this!