Tens of thousands of people waving Spanish flags joined a protest rally in Madrid today against Prime Minister Pedro Sanchez over his negotiations with Catalan separatists.

Municipal police estimated some 45,000 people had taken part in the protest, which comes just two days before the high-profile trial of Catalan separatist leaders opens in Madrid under the national and foreign spotlight.

The rally was called by centre-right Ciudadanos, the conservative Popular Party (PP) and far-right Vox, which has only recently burst onto Spain's political scene, as well as a handful of smaller far-right groups.

They are angered by Mr Sanchez's decision to take a more conciliatory tone with pro-independence parties, whose votes are crucial to the legislative agenda of his eight-month-old minority government.

"The government of Sanchez's time is up," PP head Pablo Casado told reporters before the start of the rally.

People's Party (PP) president Pablo Casado at today's demonstration in Madrid

Mr Sanchez came to power in June with the support of Catalan nationalist parties, which voted with him in a no-confidence motion against former Prime Minister Mariano Rajoy, whose PP party was embroiled in a corruption scandal.

Polls show that between them the PP, Ciudadanos and Vox would win a majority if a general election were held today, giving them the combined parliamentary power to drive Mr Sanchez from office.

The three parties won a majority in a regional election in the south-western region of Andalusia in December, ousting the Socialists from power in the region after 36 years.

They called the rally after Mr Sanchez's government last week accepted the presence - as asked by Catalan separatists - of an independent "rapporteur" in future talks between Catalan parties.

The right-wing parties accused the government of treachery over the move.

Despite the government's concession, Catalan separatist parties still refuse to back the government's 2019 budget.

If Mr Sanchez is unable to approve his budget, he could call elections before his term is over in 2020.