91³Ô¹ÏÍø

Watch CBS News

Gilgo Beach serial killer suspect Rex Heuermann appears in court

RIVERHEAD, N.Y. -- Accused Gilgo Beach serial killer Rex Heuermann made a brief appearance in court Tuesday as prosecutors turned more discovery over to the defense team. 

Heuermann's estranged wife Asa Ellerup was also in court, with a support service dog and an attorney, but she did not speak.   

It was Heuermann's first appearance since being charged in June with two additional murders of women going back to 1993, bringing the total to six. 

The district attorney confirmed Heuermann is a suspect in a seventh case, Valerie Mack. 

"Safe to say he would be a suspect in that, yes. We've said right from the very beginning that we are going to expand the investigation off of the original Gilgo Four off of the beach," Suffolk County DA Raymond Tierney said. 

Heuermann's attorney wants cases tried separately 

"The basis of all these cases, the bulk of their evidence, the strongest piece of evidence they claim they have is a hair, a hair on each body," Heuermann's defense attorney Michael Brown said. 

Heuermann's cheek swab allegedly matches a DNA profile developed from a pizza crust and napkin he discarded near his Manhattan architectural firm with a hair found in burlap used to restrain and transport the remains of a victim. 

"The MOs are different. The way the murders were allegedly carried out were different," Brown said. 

Brown wants to separate the cases, and not tie them together at trial. 

At Tuesday's court appearance, prosecutors turned over voluminous amounts of discovery - scientific and electronic - which includes 7,000 tips. 

"The case captured the public's imagination, so the public is continually providing tips which are being evaluated," Tierney said. 

"Everybody knows about this case, so we are definitely going to explore a possible change in venue," Brown said. 

Prosecutors maintain Heuermann had hundreds of contacts with sex workers through the years and that he acted alone in the killings

Heuermann, who has pleaded not guilty, says he is looking forward to going to trial. The date has not yet been set. 

He's due back in court in October. 

Heuermann was arrested a little more than a year ago and charged with three Gilgo Beach murders. He has since been charged with three more. 

The Gilgo Beach killings took place from the early 1990s until 2011. 

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