Sounds like you might have a corrupted session. Try logging out, going to your first console (Ctrl+Alt+F1), logging in to the text console and running these commands:
...then go back to your gui console (Ctrl+Alt+F7) and log back in.
rm -rf sessions
These commands will clear the existing saved sessions state and hopefully fix your problems. If not, please post back the contents of ~/.xsession-errors:
...and post back the lin kthat is generated.