The Wong family's 3-seater fabric sofa in their Taipan Puchong terrace had collected four years of coffee rings, curry splatter and pet-oil staining — never once deep-cleaned. With a family wedding rehearsal booked in five days, they needed every stain gone and the sofa guest-ready before the weekend.
The message came in on a Monday morning: "Our sofa is embarrassing but we have family coming for a wedding rehearsal on Saturday. Curry stains from years ago, plus dog smell on the headrest. Can you do something before then?" The Wong family had lived with the sofa's state for so long they had actually priced replacement sofas the week before. They booked us instead.
The Wong family's double-storey terrace in Taipan Puchong has a living room that doubles as the family gathering space — every meal eaten on the sofa, every movie night, every visit from the dog after a rainy garden run. The 3-seater fabric sofa, bought four years ago, had taken the full brunt of daily life. Coffee mugs balanced on armrests. Curry takeaway on a Friday night. The family's golden retriever who had claimed the left armrest and headrest as a personal headrest for the better part of two years.
No professional clean in four years. The family had tried a spray-and-wipe with fabric cleaner from the hardware store twice — the curry stain lightened but never lifted. They had accepted it as permanent. The wedding rehearsal changed the calculation. Forty relatives, the photographer doing prep shots in the living room, and a sofa that looked like it had survived a catering accident. They found us through a neighbour's recommendation on the Taipan residents' WhatsApp group and booked Mei Ling for the Wednesday slot.
What We Found On Walkthrough
Mei Ling arrived at 9am and did a full walkthrough of the sofa before unpacking any equipment. Findings across the three seats and cushions:
Coffee ring stains (×3): Two on the right seat, one on the left armrest. All three had been wiped at the time but the tannin had set into the fabric weave. The edges of the rings were darker than the centres — typical of a wipe-at-the-time-but-not-extracted pattern.
Curry splatter: Main concentration on the centre seat cushion and the sofa back directly above it. Turmeric staining in fabric is the hardest category — the curcumin binds to fibres and resists most household cleaners. The family had used a supermarket upholstery spray twice; both times it had reduced the visual stain but not eliminated it.
Pet-oil head-rest shading: The left armrest and the sofa back above it had a distinct grey-brown discolouration from the dog's coat and skin oils. This type of staining looks like soiling but behaves differently — it's a lipid deposit, not a dirt deposit, and needs an enzyme treatment rather than a detergent-only approach.
Faint musty smell on cushions: Two of the three seat cushions had a noticeable smell when pressed — consistent with moisture that had entered the fill layer and not fully dried. Common in ground-floor Puchong terrace living rooms where airflow is limited.
Back-cushion zipper interiors: Unzipped and checked all three back cushions. Two had visible grey dust accumulation inside the zipper track and along the inner fabric seam — a surface that never gets reached with a standard vacuum.
The Scope & Sequence
A 3-seater fabric sofa with layered stain types requires a sequenced approach — you cannot use the same pre-treatment chemistry on a turmeric stain and a pet-oil deposit. Applying hot-water extraction before the enzyme dwell time has completed will lock the stain rather than lift it. Mei Ling's protocol for this job:
09:00 – 09:20 — Dry vacuum pass. Full sofa vacuumed with upholstery nozzle: all three seat cushions (both sides), all three back cushions (both sides after unzipping), armrests, base front panel, sofa back, and the crevice between seat and back. This step removes loose particulate so the wet chemistry doesn't push surface debris deeper into the fill.
09:20 – 09:50 — Enzyme pre-treatment application. Three separate enzyme formulations applied to the three stain zones: an oxidising enzyme spray on the coffee rings (dwell 15 minutes), a curcumin-targeting enzyme concentrate brushed directly into the curry stain (dwell 20 minutes — the longer dwell is needed to break the curcumin-fibre bond), and a lipase enzyme spray on the pet-oil head-rest area (dwell 15 minutes). All three treatments applied with a soft-bristle brush to work the enzyme into the fabric pile, not just onto the surface.
09:50 – 10:30 — First hot-water extraction pass. Starting from the cleanest zone and moving toward the heaviest stain area. The extraction machine runs at 80°C water temperature with a low-moisture upholstery nozzle — hot enough to activate the enzyme chemistry and kill dust mites, low enough moisture that the fill layer doesn't saturate. First pass across all seats, armrests, and sofa back. The curry stain zone required a second concentrated extraction pass immediately after the first — two passes at full heat with a 2-minute rest between them.
10:30 – 11:00 — Back-cushion interior and odour-neutral finish. Back cushions unzipped again, zipper track and interior seam vacuumed, then a light enzyme mist applied to the interior fabric before re-zipping. All external cushion surfaces finished with an anti-allergen + odour-neutral spray — a different chemistry from the stain treatments, designed to neutralise residual organic compounds rather than treat a specific stain.
11:00 – 12:00 — Drying and final check. All cushions repositioned for maximum airflow. Living room fan turned to face the sofa directly. Mei Ling performed the press-sniff check on the centre seat at the 45-minute mark — the musty smell had cleared. Visual check on all stain zones confirmed the coffee rings had lifted completely, the curry stain had lifted to invisible at normal viewing distance, and the head-rest shading had reduced significantly. A second anti-allergen spray pass applied as a leave-on treatment.
Three specific areas on this sofa demanded more time than a standard upholstery job:
The curry stain on the centre cushion. This was the area the family had tried to self-treat twice with supermarket spray. Each prior treatment had partially lifted the visible colour but left a residue that had partially re-set into the fabric. The curcumin-targeting enzyme needed a full 20-minute dwell — not the 10 minutes that would work on a fresh stain — and the extraction required two full hot passes with a rest interval between them. The key difference between this and the family's self-treatment attempts was water temperature and extraction pressure: the supermarket spray wets and blots; the extraction machine pulls the dissolved stain compound out of the fabric at the source.
The head-rest pet-oil shading. Dog skin oils are invisible as individual deposits but accumulate over months into a visible discolouration that looks like soiling but resists detergent-based cleaning. The lipase enzyme is specific to lipid-chain compounds — it breaks down the oil bond rather than attempting to surface-lift it. Mei Ling applied this treatment with the brush technique rather than spray-only to ensure penetration into the fabric pile where the oil had settled deepest.
The back-cushion zipper interiors. Most upholstery cleaning stops at the outer cushion surface. On a sofa used daily for four years, the zipper track interior and inner fabric seam accumulate a grey dust-and-skin-cell deposit that contributes to the overall smell profile even after the outer surface is cleaned. Unzipping, vacuuming the interior, and applying an enzyme mist to the inside fabric before re-zipping adds 20 minutes to the job but is the reason the sofa passes the press-sniff check the following morning rather than carrying a residual smell.
Handover & Customer Reaction
Mrs. Wong was home for the full job. At the 45-minute drying mark, she pressed the centre seat cushion herself and said: "No smell. I don't believe it." She pressed it again. Still nothing. She then went to the head-rest armrest and pressed there. The dog-oil smell she had described as "part of the sofa now" had cleared completely.
The sofa dried fully in six hours. By evening it was back in position. Overnight it was smell-neutral — Mrs. Wong's message the following morning confirmed: "Sofa dry, no smell at all, my husband doesn't believe it's the same sofa." The wedding rehearsal was held on Saturday. The photographer's prep shots were done in the living room. The family booked a quarterly recurring slot the same week — sofa cleaning every three months, with the option to add mattress cleaning on the same visit. See also our recent Pusat Bandar Puchong mattress steam project and the Setia Walk 3-bed condo deep-clean for the full range of services we run across Puchong. Ready to book? Go to our contact page or WhatsApp directly.
★★★★★
The curry stains on our sofa were so bad we had already given up and planned to throw it out. Mei Ling lifted every single one — the sofa dried by evening and had absolutely no smell the next morning. We hosted the wedding rehearsal with full confidence. Already booked them quarterly going forward.
W
The Wong FamilyTaipan Puchong terrace owners
Get In Touch
Sofa Stains You've Given Up On?
Send us a photo of the sofa and describe the stain type. Quote in 30 minutes — flat ringgit, no surprises.
Mei Ling leads our sofa and mattress steam extraction work across Taipan, IOI Resort City and Bandar Puteri. Certified on professional upholstery extraction since 2020, she has supervised over 400 sofa and mattress jobs across the Puchong corridor.
Reviewed by Eric Tan · Founder · Alpha Cleaning Services Puchong