91³Ô¹ÏÍø

Watch CBS News

Georgia court drops case against Trump and allies over 2020 election after prosecutor moves to end it

Washington — A Georgia judge on Wednesday agreed to dismiss the state's case against President Trump and his allies stemming from the 2020 presidential election after the local prosecutor who took over the case said he would no longer pursue the charges "to serve the interests of justice and promote judicial finality."

Fulton County Superior Court Judge Scott McAfee issued a brief order dismissing the case "in its entirety" shortly after Peter Skandalakis, who stepped in to replace Fulton County District Attorney Fani Willis after she was disqualified from the case, filed a motion informing the court of his decision to abandon the prosecution of Mr. Trump and more than a dozen others, including former White House chief of staff Mark Meadows and former New York City Mayor Rudy Giuliani.

Skandalakis wrote in a memo accompanying the notice that overt acts listed in the indictment that were taken by the president and other Republicans "are not acts I would consider sufficient" to sustain a racketeering case. Skandalakis said that after reviewing the evidence, he concluded that a federal prosecution was more appropriate than one pursued by the state of Georgia, and said the "strongest and most prosecutable case" against those who allegedly sought to overturn the results of the 2020 election was the one being pursued by former special counsel Jack Smith.

The president was charged with four federal counts stemming from an alleged effort to subvert the transfer of power after the 2020 election, but Smith dropped the case after Mr. Trump won a second term in the White House.

Steve Sadow, Mr. Trump's lawyer in the Georgia case, said in response to Skandalakis' motion, "The political persecution of President Trump by disqualified DA Fani Willis is finally over. This case should never have been brought. A fair and impartial prosecutor has put an end to this lawfare."

Mr. Trump called the prosecution an "illegal, unconstitutional and unAmerican hoax."

"LAW and JUSTICE have prevailed in the Great State of Georgia," he wrote on .

A spokesperson for Giuliani cheered the decision.

"The decision to dismiss all criminal charges against Mayor Rudy Giuliani is long overdue and represents a complete repudiation of the demonstrably false claims that partisan actors used to justify his improper disbarment," Ted Goodman, Giuliani's spokesperson, said in a statement. "The integrity of our justice system cannot be fully restored until Mayor Giuliani's law license is reinstated and the hundreds of other victims of the political weaponization against President Trump and his supporters receive the justice they deserve." 

Mr. Trump and 18 of his associates were indicted by a Fulton County grand jury in August 2023 under Georgia's racketeering law and were accused of coordinating a scheme to thwart certification of the 2020 election results in the state. The indictment capped an extraordinary and historic five months, across which the president was charged in four separate cases involving allegations of conduct that bookended his first term in office. Mr. Trump was the first former president to be charged with a crime.

Two of those cases were brought by Smith and involved federal offenses, and a third was brought by the Manhattan District Attorney and stemmed from an alleged "hush money" payment to an adult film actress before the 2016 election. Smith ended his prosecutions of the president — one related to the 2020 election and the other involving his alleged mishandling of sensitive government documents after leaving office in January 2021 — after he won a second term. 

In the New York case, Mr. Trump was found guilty of 34 state felony counts of falsifying business records in June 2024 and has appealed the conviction.

Mr. Trump was initially charged with 13 felony counts in Georgia, but several have been dismissed in the years since the indictment. He pleaded not guilty and denied any wrongdoing. Four of the president's 18 co-defendants accepted plea deals from prosecutors.

The prosecution in Fulton County moved the slowest of the criminal cases involving the president, and proceedings were derailed for months by the bombshell revelation that Willis, the Fulton County district attorney, had a romantic relationship with Nathan Wade, whom she hired as a special prosecutor to assist in the investigation into Mr. Trump and his allies.

The two acknowledged the relationship but said it didn't begin until months after Wade was hired in November 2021. 

The trial court judge overseeing the case, Scott McAfee, held a multi-day hearing to examine whether Willis had a conflict of interest in the case because of her relationship with Wade and travels with him, during which both prosecutors testified.

McAfee ultimately declined to disqualify Willis from the case but said Wade had to step aside, which he did. But Mr. Trump and a group of his co-defendants appealed the ruling.

The Georgia Court of Appeals reversed McAfee's decision in December and said disqualification of Willis was the only remedy to restore public confidence in the integrity of the proceedings. The Georgia Supreme Court turned away Willis' appeal in September, leaving the ruling mandating her removal from the case against Mr. Trump intact.

The Prosecuting Attorneys Council of Georgia, which of Skandalakis is the executive director, was tasked with finding a replacement to take over the case from Willis. He announced earlier this month that he would helm the prosecution himself after several others contacted declined to do so.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });