 				var sign:int, e:Entity;
 				if (x != 0)
 				{
-					if (sweep || collide(solidType, this.x + x, this.y))
+					if (collidable && (sweep || collide(solidType, this.x + x, this.y)))
 					{
 						sign = x > 0 ? 1 : -1;
 						while (x != 0)
 						{
-							if (collide(solidType, this.x + sign, this.y))
+							if ((e = collide(solidType, this.x + sign, this.y)))
 							{
-								if (callbackX != null) callbackX();
+								moveCollideX(e);
 								break;
 							}
 							else

		public function moveTo(x:Number, y:Number, solidType:String = null, sweep:Boolean = false):void
		{
			moveBy(x - this.x, y - this.y, solidType, sweep);
		}
		
		/**

		public var originY:int;
		
		/**
		 * The BitmapData target to draw the Entity to. Leave as null to render to the current screen buffer (default).
		 */
		public var renderTarget:BitmapData;
