A boat carrying migrants to Australia sank off the Indonesian coast killing at least 22 people, Indonesian police said, a sign that Australia's tough new immigration rules may not be enough to deter would-be asylum seekers.

It happened off the southern coast of Java about 190 km south of Jakarta.

Video showed authorities and residents moving recovered bodies, including those of children, to a makeshift morgue.

Officials say the passengers were from the Middle East and were heading to Christmas Island, a frequent destination for refugee boats from Indonesia and a favoured route for people-smugglers.

This latest disaster will cast a shadow over a visit to Jakarta on Monday by Australia's new conservative Prime Minister Tony Abbott, whose tough stance on immigration was at the heart of his election campaign.

Sign up to our free newsletters

Get the best updates straight to your inbox:
Please select at least one mailing list.

You can unsubscribe at any time by clicking the link in the footer of our emails. We use Mailchimp as our marketing platform. By subscribing, you acknowledge that your information will be transferred to Mailchimp for processing.