Something has to change, but it has to be radical.
One thought that comes to mind (and I don't remember the source, sorry) is this:
"For two nations that are comprised almost entirely of immigrants, the United States and Canada have awfully closed borders when it comes to accepting new ones."
I say we fling wide the gates this way:
You are welcome to come to Canada and start work on your first day, providing:
1. you have no criminal record (or have received appropriate rehabilitation), and aren't a security threat to Canada or her allies.
2. you will put on deposit with the Federal Government the cost of a plane ticket to your home nation. This will be returned to you on the earliest of two occurrences: 1. when you gain citizenship; 2. when you choose to seek social assistance, it will be in the form of a plane ticket.
3. you understand that in hiring processes, Canadian citizens will have "first dibs" -- that is, if you and a Canadian apply for the same job and you have similar qualifications, the employer must hire the Canadian.
4. you will be eligible to apply for citizenship after 5 years. Processing time for applications will be reduced to 30-60 days. You must show that you have been a CONTRIBUTING member of society for that period -- you must pass an official language test and provide records demonstrating your financial contribution (i.e. taxes). If you don't have these completed, you'll be put on "probation" for 5 years. If, after 10 years of living here, you still cannot complete this requirement, you will be returned to your country of origin.
Sound fair?