But then it seems like that's not true, as the companies are posting the same job ad for the next months (or even years), and cannot find anyone for that position. And people from those companies cry that they cannot find programmers. And forums keep filling with comments about their stupid recruitment process.
It seems to me that the companies which want to talk, and negotiate the salaries are winning, and can find people.
For the question about my current salary, I answer that my contract doesn't allow me to tell that. If they insist, I ask them if, after getting me hired, they would like me to tell my future employers how much they pay me. That usually ends these questions.
However I don't have any good reason not to answer about my salary expectations, but it seems like I usually want too much :)