91³Ô¹ÏÍø

Watch CBS News

Florida lieutenant killed by husband who tried to stage her murder as a suicide, authorities say

A Florida law enforcement officer who appeared to die by suicide last week was actually shot and killed by her husband, authorities and the officer's former colleagues said.

Deputies with the Orange County Sheriff's Office responded to a call Monday, Oct. 14, that at first seemed to be a suicide. They found Lt. Eloilda "Ellie" Shea, 39, dead in the Rio Pinar area of Orlando, the sheriff's office in an announcement days later. 

But Orange County homicide detectives conducted a death investigation and determined Shea was actually killed by her estranged husband, Anthony Shea, who previously served as a sergeant at the same sheriff's office. Detectives believe Anthony Shea tried to make his wife's death look like a suicide by using her phone to send messages to his own phone and misleading deputies who arrived to investigate, CBS affiliate WKMG-TV .

Authorities arrested Anthony Shea, 49, on first-degree murder charges in the shooting death of his wife. He was being held without bond Friday in the Orange County jail, according to the sheriff.  

Words cannot do justice to the pain our OCSO family is experiencing this week as we mourn the loss of Lieutenant Eloilda...

Posted by on 

Anthony Shea joined the Orange County Sheriff's Office in 2006 and resigned from his position as sergeant earlier this year. The office said he was under investigation at the time for allegations that would have caused his termination, although details about the nature of those allegations were not made clear.

"We are grateful to our homicide detectives, who had the extraordinarily difficult job of investigating a colleague's murder, for their diligence in ensuring justice for Ellie," the sheriff's office said.

The office said its staff was mourning Ellie Shea's death and struggling to cope with "a devastating loss" in a separate , praising the friendly demeanor and work ethic for which the lieutenant was "beloved."

"Lt. Shea, just 39 years old, joined the Orange County Sheriff's Office in 2011, quickly making her mark as a compassionate law enforcement officer, rising star and friend to so many she worked alongside," the statement said. "She lit up every room she entered with her infectiously bubbly personality, beautiful spirit and kind smile."

Shea's colleagues described her as "a mentor, teacher, advocate, protector, cheerleader and an inspiration to women aspiring to be leaders." She was also a mother to two young children, daughters 7-year-old Lana and 2-year-old Raquel. Anthony Shea is their father.

The sheriff's office asked community members to consider donating to a GoFundMe campaign to support the children as they face a "difficult road ahead of them." The fundraiser has received more than $38,000 of its $100,000 goal as of Tuesday morning.

"Family and friends will be caring and providing for Lana and Rocky during the most devastating time in their life. So any amount of kindness that can be shown to the family will be greatly appreciated. Your donation will go towards anything the family needs during this time," reads a description for the campaign. "Please keep the family in your prayers as they mourn and navigate the grief of this situation."

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