Stopping a block level element at a float?

I feel silly asking an amature-level question like this, but I haven’t been able to quite get my mind around the CSS block-level formatting scheme, and thought maybe someone here could help a bit.

Here’s what I’m trying to do: I’m adding a bottom border to an h3 element to make a nice little line that extends across most of the width of the div it’s contained in. That looks nice. But then, I’m trying to float a small second div over to the right of the h element, and I’d like the underline to stop at the margin of the floating div, rather than extend underneath it. Here’s the page:

If I’m understanding the way it’s supposed to work, this is absolutely correct, since floats are supposed to be on top of block level elements. So what I’m really wondering is if there’s either a way to specifically tell block-level elements to stop at a floating element, or to create an element that respects the float, but extends all the way to it rather than ending at the edge of the text (like a span).

Or another way to position something on the right and still have stuff avoid it, but I don’t think that’s possible under proper XHTML.