ambiguous reference
I'm sure I'm not the only person this happens to. You're coding along and you add a new "using" for something. In this case I had to add the thingy so I could get Server.MapPath. (I loove Server.MapPath). Anyway, you add the reference and then code your new thing you were trying to do. Compile. All of a sudden something which was perfectly working before starts to break. It says "ambiguous reference" on a previous declaration. Trouble is, you wrote so much code with your new thingy, you're not sure what it is.
Turns out the library folks are not too concerned with overlapping names. For example, a name called "Document" might be used in "using Server" as well as "using MyWidget." As soon as you add a reference to something that duplicates it, you get an ambiguous reference error. The fix is to be explicit and say MyWidget.Document when creating your objects, instead of just Document. However, the error itself is quite ambiguous!