91³Ô¹ÏÍø

Watch CBS News

Judge vacates murder conviction of Chicago man wrongfully imprisoned for 35 years

CHICAGO (AP) -- A Chicago man who spent 35 years behind bars for a murder he didn't commit was freed Tuesday after a judge vacated his conviction and dismissed all charges.

Brian Beals, 57, struggled to find the right words to describe his feelings as he stood outside Robinson Correctional Center in Crawford County, some 210 miles (338 kilometers) south of Chicago, and embraced his sister and niece.

"Relief, happiness, it was just amazing to walk out of there," he told The Associated Press in a phone interview. "I'm ready to begin life again."

Chicago Man Exonerated
Brian Beals, center, who was exonerated on a murder charge and released from a downstate prison after 35 years behind bars, hugs his sister Pattilyn Beals, left, and niece Tamiko Beals outside Robinson Correctional Institution, in Robinson, Ill. Laura Nirider / AP

Beals was convicted in the 1988 murder of 6-year-old Demetrius Campbell. At the time, Beals, a 22-year-old student at Southern Illinois University in Carbondale, was home in Chicago during Thanksgiving break. He was approached by a drug dealer and they argued, according to news accounts at the time. Attorneys say Beals got in his car and drove off. Bullets fired in Beals' direction hit two bystanders, the boy and his mother, Valerie Campbell.

Despite three witnesses describing a different offender, Beals was convicted, namely on Campbell's testimony. She said she saw Beals in the argument and believed he fired the shots. Beals maintained his innocence.

Attorneys who took on Beals' case, including with the Illinois Innocent Project, found five new witnesses to corroborate that Beals was the intended target and was not the shooter. They also presented new photographic enhancement showing Beals' car had bullet holes in the rear bumper.

"Brian Beals' case is one of the most egregious wrongful convictions I have ever seen," Laura Nirider, one of Beal's attorneys, said in a statement. "Brian, a college athlete who was studying to be a police officer, represented the best of his community's future — but that future was derailed."

Beals has served the second-longest term of wrongful incarceration in Illinois history, according to the National Registry of Exonerations.

The Cook County state's attorney's office helped work on releasing Beals as part of its conviction review unit. In a statement, the office called the wrongful conviction "a grave miscarriage of justice" for Beals, the victim and their families.

Beals left prison with two cardboard boxes full of his belongings Tuesday to screams of joy and tears of excitement, said Lauren Kaeseberg, an Illinois Innocence Project attorney who greeted him.

Much has changed during Beals' time away. He marveled at cellphone technology.

He used his time behind bars to mentor young people and write plays, including one entitled "Jabril's Chains" about a former inmate. It was performed this year at a Chicago coffee shop.

There were also many low points. During his incarceration, he lost his mother, his older brother and several aunts and uncles.

He isn't sure what he will do next, but he hopes to return to Chicago someday.

"I'm a taking it in. Processing it. "I'm looking forward to building a life, starting over," he said. "I have to figure out what this world has in it."

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=50747257b890e014813016b79ece0fb2'; 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(); } }); }); }); });