91³Ô¹ÏÍø

Watch CBS News

Florida teen charged as adult in killing of stepsister Anna Kepner on Carnival cruise ship, DOJ says

The 16-year-old stepbrother of Florida teenager Anna Kepner has been officially charged as an adult in her killing after she was found dead aboard a cruise ship in 2025, .

According to court records, the Titusville teenager, identified by federal prosecutors with his initials "T.H.," was traveling on Carnival Cruise Line's Horizon with 18-year-old Kepner and other family members in November 2025 when the incident occurred during a Caribbean voyage, according to the DOJ. 

Investigators said that while the ship was in international waters en route to Miami, the teenage stepbrother allegedly sexually assaulted and intentionally killed Kepner, according to the DOJ.

cbsn-fusion-anna-kepner-family-stepbrother-charged-homicide-death-cruise-ship-thumbnail.jpg

The Miami-Dade Medical Examiner's Office later determined the cause of death to be mechanical asphyxiation.

"Our hearts go out to the victim's family during this unimaginable loss," U.S. Attorney Jason A. Reding Quiñones for the Southern District of Florida said in a news release. "A federal grand jury has returned an indictment charging serious offenses that allegedly occurred aboard a vessel in international waters. We will present the evidence in court and pursue this case with professionalism and care."

Quiñones went on to say that Kepner's stepbrother is presumed innocent unless or until he's proven guilty.

The teenager was initially charged as a juvenile in February, and the case remained sealed until U.S. District Judge Beth Bloom ordered it transferred for adult prosecution.

According to the DOJ, Kepner's stepbrother was charged with first-degree murder and aggravated sexual abuse.

If he's convicted in her killing, he faces a maximum penalty of life in prison.

Family member reacted to the indictment of Kepner's stepbrother on Monday.

"I am glad that justice is starting and I am hoping she gets the justice she deserves," said Chris Donohue Sr, Anna's step-grandfather. "Her life was cut short and we are saddened that we will not be able to see what a beautiful life she would have had."

No court date has been set as of Monday afternoon.

"It was inevitable that the stepbrother would be charged as an adult," said Dave Aronberg, a former Palm Beach prosecutor who reviewed the indictment and has followed the case but is not involved. "The adult criminal justice system is better equipped to handle a 16-year accused of such violent crimes that result in death."

A juvenile track in the federal courts would have allowed the defendant to potentially be released from prison at 21 years old regardless of how severe the crime was, according to Aronberg.

FBI Miami is investigating the case, and Assistant U.S. Attorney Alejandra L. López is prosecuting the case.

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