91³Ô¹ÏÍø

Watch CBS News

A decade after "Missy" Bevers was found dead in a North Texas church, her killer remains at large

This week marks a decade since 45-year-old Terri "Missy" Bevers was found dead inside a North Texas church. To this day, investigators are still working to figure out who killed her.

late Tuesday night saying the investigation remains active and ongoing.

"Our investigators remain fully committed to identifying the person responsible, bringing them to justice, and providing the Bevers family and our community with answers," part of the post reads.

The department also noted they do not consider Bevers' case to be cold, that it reviews all credible tips, and that forensic technology advancements continue to be used. The department also dispelled claims that it had refused help from other agencies and that it had ruled out some people as suspects.

What happened in 2016

Midlothian Police reported that Bevers was found dead inside the Creekside Church the morning of April 18, 2016. She was supposed to host a fitness bootcamp. Her body was discovered by one of the class participants, and it was later determined she died of a head wound.

terri-missy-bevers.jpg
Terri "Missy" Bevers CBS News Texas

At the time, the department said none of the Bevers family members, friends or co-workers were considered suspects. Midlothian Police also said then that all leads, generated from residential and commercial security cameras, had been exhausted save for one. Investigators were hoping to speak to whoever owned or drove a vehicle caught on camera at a nearby parking lot. They stressed that they didn't think that person was involved in Bevers' killing, but wanted to see if that person had any memory about what happened that morning.

A suspect, who was seen on video inside the church, was described by police as standing somewhere between 5 feet 2 inches and 5 feet 7 inches tall and having lighter skin. The suspect was seen wearing that looked like what investigators described as "police tactical gear", including a helmet, vest and gloves. The clothes, police noted, weren't specific to any branch of law enforcement.

The video only showed the suspect walking through the hallways, breaking glass on doors. Police said the suspect didn't steal anything, even Bevers' wedding ring.  

Loved ones remember Bevers

In August 2025, CBS News Texas spoke with Renae Rodden, one of Bevers' friends. They had first met in 2015, when the two were working at the same clothing company.

"She was a good person," Rodden said. "She was humble. She was dedicated to teaching people fitness and healthy eating habits to make a difference."

Organizers held a community tip drive at Kimmel Park, focused on keeping Bevers' story alive.

"It's very frustrating to know that it hasn't been solved," Rodden said.

How to share information with investigators

Midlothian Police, in their Tuesday night Facebook post, noted that tips about Bevers' case have come in from both within Texas and from out of state; the department said in the last year alone, investigators reviewed more than 100 leads.

Anyone who has information to share can or by calling (972) 937-7297. Tips that lead to an arrest and conviction could be eligible for a cash reward. Midlothian Police also take tips directly via phone at (972) 775-3333 or via private message to its Facebook Page.

"Even a small detail may be significant. We urge anyone with information, no matter how minor it may seem, to contact us," the department's post concluded.

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(); } }); }); }); });