91³Ô¹ÏÍø

Watch CBS News

Blighted three-flat in heart of Wicker Park untouched for over 4 years, angering neighbors

The blighted shell of an 1885 three-flat on Milwaukee Avenue in the heart of Chicago's Wicker Park neighborhood has stood vacant for four years, angering neighbors and causing problems.

The Commission on Chicago Landmarks approved a proposed renovation for the building in 2020, but then the Department of Buildings issued a stop work order in 2021 when the second and third floors of the building were improperly demolished.

Derek Mullins, who owns Metamorph Studios tattoo shop next door, has been damaged by the decaying building. Neighbors thought it would be fixed almost as quickly as it crumbled.

"I mean look at it, it's just rotting away," Mullins said.

But more than four years later, no progress has been made.

"It looks like the second floor is only very loose lattices that if someone walks on it, they're going to fall through and break their neck," Mullins said.

He has been worried about safety there for years, and recently people have been using the scaffolding to tag private properties with graffiti.

"It's almost like a cancer. It's spreading, so I want to stop it," he said.

Department of Buildings records show the property has been in demolition court since 2022, and the latest hearing has been continued again until Dec. 9. Regular inspections have routinely fond serious violations.

Even the alderman hasn't been able to help.

"Alderman La Spata has worked with the Department of Law and the City on this property for years, to advocate for businesses and residents as well as the swift completion of the project," his office said in a statement.

Last year, Mullins and his landlord filed a lawsuit because he said it's dragged on for so long.

"I would like to see an emergency order of it being taken down. The scaffolding needs to go," he said.

After this story went to air, the Department of Buildings responded to CBS News Chicago, saying the owner, who has not responded to any of our requests for comment, has submitted a permit application addressing the violations. The permit is still being reviewed, but once it is issued work can begin again.

The city's Law Department declined to comment on this case, citing pending litigation.

Full statement from the Department of Buildings

"The property owner has submitted a permit application to the Department of Buildings addressing the previously cited violations. While the permit is being reviewed, the property owner is ordered to secure the site and keep a canopy in place to ensure the safety of the surrounding community. Once the permit is issued, work can begin again."

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