I'm 5'4", 126 lbs, 34B, and I bought the Medium in the white.  Ended up returning it for a Small in the black, because reading the Care instructions it said NOT to wash in the washer, and I feared white would get too dirty for hand washing.  As for the fit, it runs a little large The shoulder seams were a good inch down my arms although it fit snug on my body -- but it's so very stretchy that I think the Small will fit better.  I believe this is supposed to fit quite tight in order to keep you warm.  It's really, really cute.  I could see wearing it as a top when NOT in the water, with shorts, pants or a skirt.  I love the rouched style, the short zipper, and the fact that the length is extremely adjustable for style or comfort.  It's quite long, long enough that it covered my butt if I wanted to really stay warm in the water.  I will wear this snorkeling to avoid sunburn and to stay a bit warmer.