91³Ô¹ÏÍø

Watch CBS News

Framingham man reunited with first responders who saved him when massive tree crushed his car

A Massachusetts man was reunited with the first responders who saved his life last month when a massive tree slammed onto his car, trapping him inside and leaving him seriously injured.

With his arm in a sling, neck in a brace, and gratitude in his heart, Eric Freeman helped honor those Framingham first responders on Wednesday along with Massachusetts Sen. President Karen Spilka during a small ceremony at the fire station.

"This could have been a very different outcome but we are here surrounded by Framingham's finest," Spilka said. "It was a random, freak accident that was just very unfortunate. Because of those that came, the public safety, because of their expertise, their fast action, their compassion, and knowing exactly what to do during this very difficult time helped save Eric."

Framingham tree on car

The 67-year-old Freeman was driving through Framingham on an early December night when a pine tree suddenly came crashing down. The tree crushed Freeman's Audi and nearly killed him.

"I was driving along and all of the sudden my head was on the center console of the car, and I was looking out through my moon roof," he said. "It took a while before I could finally say 'Help!' and put some volume into it which was scary."

Freeman said it was the epitome of being in the wrong place at the wrong time, but the right people at the right time is what saved his life.

"I just shook his hand. I can't believe he's standing," Brewster paramedic Don Avery said.

Avery was on his way to a different call when he happened to come across the scene.

"I didn't expect to see anybody alive," Avery said. "The center part of the tree, we were able to get that off with some bystanders."

New appreciation for life

Freeman said he doesn't remember much. But he does remember the sirens, and people helping.

"It gives me a lot of appreciation for civilization, community," he said. "It's a lot of people working together. It's delightful."

Though Freeman said his recovery has been slow and frustrating, he added that he feels fortunate to be alive. He has a plate screwed into his skull and a bar that goes down into his spine. 

Today, Freeman and his wife Kathleen say they have a new appreciation for life, and the community around them.

"It's nice to hear the different accounts from the first responders and understanding how this all came together and worked so well," Kathleen said.

Eric is an avid skier and hiker, two activities now on hold as he still faces a long road to recovery.

"Skiing, going back and letting Wildcat know whose boss," he said. "I may not be able to do what I did before. But hopefully I'll still be able to hit the mountains hard."

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