Germany's Merz completes chaotic Cabinet reshuffle

From left to right: German Chancellor and CDU Chairman Friedrich Merz, designated CDU Secretary General Franziska Hoppermann and designated German Health Minister Carsten Linnemann in Berlin on Tuesday (AFP photo)
From left to right: German Chancellor and CDU Chairman Friedrich Merz, designated CDU Secretary General Franziska Hoppermann and designated German Health Minister Carsten Linnemann in Berlin on Tuesday (AFP photo)

BERLIN — Chancellor Friedrich Merz on Monday named a new transport minister, completing a chaotic Cabinet reshuffle sparked by a senior party member resigning over a surrogacy scandal.

Steffen Bilger, 47, of Merz's conservative CDU Party, will be formally appointed on Wednesday to replace Transport Minister Patrick Schnieder, Merz told a press conference after a meeting of the party leadership.

Merz's intention to sack Schnieder leaked last week but according to German media no formal announcement was made because Merz's original pick for his replacement pulled out at the last minute.

Having been left in post for several days regardless, Schnieder then asked to be released from the job on Sunday.

Merz told reporters on Monday he was "sorry for the situation that resulted" from Schnieder's botched dismissal and said that he has "no problem" with him.

Schnieder had faced months of criticism over his lack of effectiveness in improving Germany's ailing rail infrastructure, despite the country loosening its its traditional aversion to debt to make way for a defence and infrastructure spending boost worth hundreds of billions of euros.

Merz on Monday said he expected Bilger to "demonstrate that this enormous borrowing is justified by swift implementation -- in transport projects, rail, roads, the entire infrastructure".

The cabinet reshuffle was set in motion last week when Jens Spahn, the chairman of the CDU parliamentary group, resigned amid controversy over contracting a surrogate mother to have a child.

Spahn and his husband had the child via a surrogate in the United States, despite surrogacy being illegal in Germany and vehemently opposed by the CDU.

Spahn will be replaced by Merz's chief of staff Thorsten Frei, who in turn will be replaced by current Health Minister Nina Warken.

CDU General Secretary Carsten Linnemann will be the new health minister.

.col-lg-12.second .opinion-widget{border-top:1px solid #D0D0D0;} #widget_1623 .opinions-title {font-size:32px;} #widget_1623 .opinions-title a{font-size:32px;} .first-author{ background-color:#ecedef; } .first-opinion-author-name{ background-color:white; width:max-content; padding:5px; }
.epaper-separator{ height: 1px; width: 100%; background-color: #D0D0D0; margin: 15px 0; }

Today’s Paper

.related-articles .article-widget-sm .article-title{font-size:16px;-webkit-line-clamp:3;} .related-articles .layout-ratio{padding-bottom:55%;}
.alert-success { color :#A3656F ; } .alert-danger { color : red ; } .footer { font-family:Myriad Pro,Arial; } .newspaper-footer{ visibility:hidden; } .socialFixOuter { position: fixed; top: 50%; margin-top: 40px; right: 0; transition: .2s; z-index: 20; height: 217px; width: 40px; } .socialFix { height: 30px; width: 30px; display: block; position: relative; cursor: pointer; background-size: 18px 18px; transition: .2s; background-position: center; background-repeat: no-repeat; border-radius: 2px; margin-top: 1px; } .socialFix:hover { width: 40px; margin-left: -10px; } .app-badge-img { height: 36px; width: auto; } @media (max-width: 768px) { .app-badge-img { height: 32px; } .app-badges { justify-content: center !important; } }
document.addEventListener("DOMContentLoaded", function () { const socialFix = document.querySelector(".socialFixOuter"); if (!socialFix) return; let firstInteraction = false; let hideTimeout = null; function checkMobileScreen() { if (window.innerWidth < 768) { socialFix.style.display = "none"; } else { socialFix.style.display = "block"; } } checkMobileScreen(); window.addEventListener("resize", checkMobileScreen); function handleFirstInteraction() { if (firstInteraction) return; if (window.innerWidth < 768) return; firstInteraction = true; socialFix.style.right = "-25px"; } socialFix.addEventListener("mouseenter", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); socialFix.style.right = "0"; }); socialFix.addEventListener("mouseleave", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); hideTimeout = setTimeout(() => { socialFix.style.right = "-25px"; }, 500); }); ["click", "touchstart"].forEach((evt) => { socialFix.addEventListener(evt, handleFirstInteraction); }); }); function validateEmail(email) { if (email.length > 255) return false; const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if (!emailRegex.test(email)) return false; if (email.includes('..') || email.startsWith('.') || email.endsWith('.')) return false; return true; } function sanitizeInput(input) { input = input.replace(/<[^>]*>/g, ''); input = input.replace(/javascript:/gi, ''); input = input.replace(/on\w+\s*=/gi, ''); input = input.replace(/[<>"'&(){}[\]]/g, ''); return input.trim(); } document.addEventListener('DOMContentLoaded', function () { function showModal(message, type) { const messageContainer = document.getElementById("messageContainerFooter"); messageContainer.textContent = message; messageContainer.className = `alert alert-${type} mt-3`; messageContainer.classList.remove("d-none"); setTimeout(() => { messageContainer.classList.add("d-none"); }, 5000); } document.getElementById("emailFormFooter").addEventListener("submit", function(event) { event.preventDefault(); const emailInput = document.getElementById("emailFooter"); const email = sanitizeInput(emailInput.value.trim()); if (!validateEmail(email)) { showModal('Invalid email format', 'danger'); return; } const formData = new FormData(); formData.append('email', email); fetch('/subscribeNewsletter', { method: "POST", body: formData, headers: { "Accept": "application/json", "X-Requested-With": "XMLHttpRequest" } }) .then(response => { if (!response.ok) { showModal("Error submitting email. Try again.", 'danger'); } return response.json(); }) .then(data => { showModal(data.message, 'success'); }) .catch(error => { showModal("Error submitting email. Try again.", 'danger'); }); }); });