91³Ô¹ÏÍø

Watch CBS News

Pipe bursts around Chicago, including O'Hare Airport control tower due to cold snap

Chicago's roller coaster temperatures are likely to blame for a pipe bursting at O'Hare's main air traffic control tower on Tuesday.

It caused flight delays all day as air traffic controllers had to evacuate and rely on two smaller towers. The main control tower has since been back up and running, according to the Federal Aviation Administration, but not before nearly 900 flights were delayed.

Unfortunately, it wasn't just an O'Hare problem on Tuesday. Pipes were bursting all around the city with single-digit windchills.

Water started pouring out of the ceiling of an Auburn Gresham apartment building during the afternoon after a pipe erupted.

"A tenant heard water pouring down from a unit next door," said Justin Keller. 

Justin Keller and Iverson Yojcon with Pro Services Plumbing and Sewer responded to it as soon as they could.

"It was pretty bad. It was a big building, so it was under quite a bit of pressure," Keller said.

They said they shut down the valve and isolated the leak.

In the midst of this cold snap, they said pro services is seeing 10% more calls than average.

"We have been getting just a lot of pipe bursts, a lot of frozen pipes, calls for no hot water," Keller said.

A pipe burst is what caused air traffic controllers to evacuate the main tower at O'Hare a little after 1 a.m. on Tuesday.

It forced a ground stop and flight delays all day, with travelers saying they missed connecting flights.

"They had two delays there for us, so we just got in. I ran all the way to the gate, and I thought I made it, and they were already gone," Jon Eis said.

"We pushed off, then we got the announcement that we had a 50-minute delay, so five, zero," said Lara Dyke.    

"She had some pinholes in her copper, so every time she was doing laundry, it was coming out of the pipe," Keller said.

As for Justin and Iverson, they attended six calls on Tuesday. 

Their advice for homeowners and renters this winter is to disconnect hoses outside, let faucets on exterior walls drip, and keep a space heater on areas prone to freezing.

They said those simple measures could have prevented the bursts.

"If we didn't come out here, it was only a matter of time before it could have started coming out into the hallway," Keller said.

While plumbers said winter is known for pipes bursting, once the weather starts thawing out in the spring, their call volume picks up.

CBS News Chicago reached out to the FAA on the extent of the damage to the main control tower and how much the repairs cost, but has yet to hear back.

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