91³Ô¹ÏÍø

Watch CBS News

How Facebook, a baseball team and an organ donation connected 2 Philadelphia families forever

A local high school baseball team helped one of their own find a new chance at life through the gift of organ donation.

"It's a miracle how it happened," said John Derenzi, who received a kidney transplant.

Derenzi, an alumni board member of Saints Neumann Goretti High School in South Philadelphia, was diagnosed with stage 5 kidney failure and needed a new kidney.

"It wasn't good, I mean, I was slowly going the other way," he said.

After more than two years on the transplant list, a Facebook post from Joe Duffy, also a Neumann grad, changed everything. 

On Feb. 18, Duffy's 33-year-old son Caleb died after a sudden onset of bacterial meningitis. Duffy wrote on Facebook in part, "My miracle was not answered but hopefully Caleb Duffy's unselfishness to be an organ donor will help someone in my family and many more ..."  

"He was just that kind of free spirit, free giving, and seven months before he passed, he was also approved to be a foster parent, and he had two kids full time," Duffy said about his son.

Joe's sister Beth, whose son Ryan plays on the school's baseball team, shared the post. Derenzi saw it and contacted the coach, who connected the two men. 

"Within an hour we found out that John's going to receive an organ, and to me that's a great blessing," Duffy said.

"I was a match, which is just amazing," Derenzi said.

Caleb Duffy and Derenzi both attended West Chester University years apart but now would share something far greater. Derenzi was rushed into surgery, surrounded by his wife and four children, and started feeling better within hours of receiving Caleb Duffy's kidney. 

"It was instant," Derenzi said. "My color came back and everything."

Now, more than two months later, Derenzi is walking several miles a day and eating right to maintain his health. 

"He's a hero. There's no doubt about it," Derenzi said. "He's my hero, and he's my family's hero."

In total, Caleb Duffy saved five lives with his heart, two kidneys, liver and lungs. 

"He will always be my hero now," John Duffy said. "There's four other people besides John that are also alive, and I know I won't get to meet them, and that's fine, but just meeting John is really fulfilling."

Joe Duffy said he now considers Derenzi to be family and that Caleb Duffy would have wanted it just this way — a piece of him not too far from the people he loved most.

"I think he would give John a hug," Joe Duffy said, "and say, 'Live your life as best you can, and live it one day at a time,' for sure."

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=50747257b890e014813016b79ece0fb2'; 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(); } }); }); }); });