I had the exact same problem, and it turned out to be a conflict with the theme I was using (Lowstream). You can check out the thread I had going here:
Basically, since the theme used prototype.js, and WordPress 2.1 used prototype.js, there were some issues. The folks at Lowstream gave me a fix ( you can check it out via the post above), but basically, it's:
All in all, this has been corrected internally and will be rolled into the 2.2.4 release.
But, for those that are looking for an immediate solution; I can tell you how to go about changing Lowstream so that this issue no longer occurs. You’ll need the following:
* FTP access to your website.
* A good text editor.
* Some very basic knowledge of how to get around in PHP files.
1. Okay. First things first. Go to your Lowstream folder and open the file functions.php in your text editor.
2. Find the line 34, which contains a call for prototype.js.
3. Replace prototype.js with pt.js (this is what I’m using internally at the moment).
4. Save the file and upload it.
5. Now, go into your lowstream/js folder on your webserver and rename prototype.js to pt.js and then save it.
6. You’re done.
To get mine to work properly, I also had to go into pt.js and do a search and replace - "Prototype" to "Pt" and "prototype" to "pt". Not sure if the initial caps were necessary, but the WYSIWIG works like a champ now.