91³Ô¹ÏÍø

Watch CBS News

Minnesota propane explosion prompts safety warning from state fire marshal

MINNEAPOLIS — A father and five of his sons are in the hospital recovering from a propane explosion that happened in northern Minnesota on Monday

The state fire marshal said a cigarette lighter ignited a leaking propane tank.

"It is an absolute miracle from the lord that they are still here," said Dimitri Frank, the oldest brother to the five boys.

Randy Ritchie and his sons: Zander, Tannen, Keegan, Kaeto and Braedynn, were at the storage unit to pick up toys for a birthday, Frank said. All six were burned in the blast, and airlifted hundreds of miles away to the burn unit at Hennepin Healthcare in Minneapolis.

"Not out of the woods yet, but it's going in a positive direction," said Frank on the family's recovery. "They've all been responding to surgeries pretty well so far."

Despite the progress, Frank said the boys and their dad are still in critical condition and still intubated. They are responding, but unable to speak.

The boys' mother says there will be a long road ahead with many surgeries.

Propane safety is especially important, as we head into the winter months, fire officials said.

"They occur more often than we would like, and more often than the average person would think," said Minnesota State Fire Marshal Daniel Krier.

Krier said to store propane tanks outside and installing smoke alarms, carbon monoxide alarms and explosive gas detectors in areas with the tanks. Never assume a tank is empty. Even a small amount of gas can be explosive.

One sign of a leak is a rotten gas smell. Krier warns people should leave the area if that happens. 

"That's what we need, everyone to practice back out and call 911," said Krier.

Frank said his brothers and step dad should have a full recovery, after several more months in the hospital.

"The fact that they're all alive and no internal injuries or anything, that's super super major. That's a godsend. We are just unimaginably grateful," said Frank.  

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