91³Ô¹ÏÍø

Watch CBS News

Missing Grapevine man Christian Saulter-Williams found safe

UPDATE (2/18/2023) — Christian Saulter-Williams was found safe in another city over four weeks since he first disappeared.

GRAPEVINE, Texas (CBSDFW.COM) — The mother of a missing Grapevine man says the family and police are still investigating tips about his disappearance more than three weeks after he walked away from his home.

Christian Saulter-Williams
Christian Saulter-Williams Grapevine Police Department

Christian Saulter-Williams, who suffers from a medical condition, was last seen on Jan. 24 at the Haltom City Public Library.

"It's hard to believe that no one has had any verbal communication with him for 17 days, and we are very worried," said Avis Williams, Christian's mother.  "It's hard to believe that he has disappeared into thin air."

Saulter-Williams, who left home the afternoon of Jan. 18, has had no history of running away, according to his parents.

"We consider this search to be urgent simply because he hasn't had his medication for an extended length of time," Williams said.

The search became more desperate in early February as below freezing temperatures and freezing rain covered North Texas.

Saulter-Williams graduated from Grapevine High School in 2010 and went on to the University of North Texas, where he earned a degree in radio, television and film.

His family said he enjoys visiting local coffee shops and creating animations and other videos.

Williams said she and her husband have been putting up flyers and running down tips that have come in via social media, scouting areas in Watauga, Haltom City, North Richland Hills, and Grapevine.  

Saulter-Williams has black hair and brown eyes. He is 6 feet tall and 220 pounds. He was last seen wearing a black a gray beanie and a red and black checkered flannel-type shirt. He was wearing dark-colored sweat pants and black tennis shoes with white soles.

Anyone with information is asked to call Grapevine Police at 817-410-8127 or email cidmail@grapevinetexas.com.

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