It's the market contract that does it (at least it should), when someone tries to sell below the buy price it should fill in orders as it goes at those prices down to the given price, or until the sent TOKEN for the order runs out.
(Confirmed, I just test sold 0.1 BRO @ 0.1 HIVE, received 0.7 SWAP.HIVE)