Anyone who has worked a counter knows the particular frustration. The coat goes through a full wash, comes out looking white, dries on the line, and then the moment it is worn in a warm room the smell is back as though nothing had happened. It is tempting to conclude that the machine is not doing its job or that the dose was too small. Neither is usually true. The wash removed the visible soil perfectly well and left behind a different class of compound entirely, one that ordinary detergent chemistry is not designed to shift.

Where the smell actually comes from
Sea fish carry a compound called trimethylamine oxide in their flesh, which helps them cope with the pressure and salinity they live in. It has no smell at all while the fish is alive. Once the fish is landed, that compound begins converting to trimethylamine, and trimethylamine is the substance almost everyone recognises immediately as the smell of a fish counter.
Trimethylamine is an amine, which puts it in the same chemical family as ammonia. Two properties matter here. It is volatile, meaning it readily leaves a surface as a gas and travels to a nose, and it is basic, meaning it behaves as an alkali in water. Both properties are the key to getting rid of it, and both are the reason a normal wash does not.
Alongside the amines there are the oils. Fish fats are highly unsaturated, which makes them unusually reactive with oxygen, and as they oxidise they break down into small aldehyde compounds with their own strong and distinctly rancid smell. This is the note that develops on a coat over days rather than the sharp one that arrives on the day.
So an apron off a fish counter is carrying two separate problems in the same cloth. A volatile alkaline compound sitting loosely in the fibres, and an oily residue bonded to them that goes on generating fresh smell for as long as it stays. A single approach will not handle both of them.
Why ordinary washing leaves it behind
Laundry detergent is formulated alkaline on purpose. A pH well above neutral helps break down fatty soils and keeps the wash water working on greasy marks. That is exactly right for most kitchen soiling, and it is precisely the wrong environment for an amine, because an alkaline solution keeps trimethylamine in its free volatile form. The wash water is full of it and the cloth simply holds on to what does not rinse out.
The water temperature adds to the problem. Warm water encourages a volatile compound to evaporate, which is helpful if it can leave, but inside a closed drum full of wet fabric it largely redistributes instead. Some leaves with the drain water, some settles back into the weave, and the garment comes out with a reduced but persistent load of it.
The oils behave differently and worse. Fish oil that has already started to oxidise becomes sticky, and sticky residue clings to a fibre surface far more stubbornly than fresh oil does. A short wash with a standard dose moves the loose material and leaves a thin film across the cloth that surfactant alone will not fully lift.
The result is a coat that is genuinely clean by any visual measure and still smells the moment it warms up on a body. Nothing has gone wrong with the machine and nothing was done carelessly. The chemistry of a general purpose wash and the chemistry of this particular smell are simply pulling in opposite directions, and repeating the same wash at a higher temperature only makes the point more emphatically.
Acid, alkali and the amine problem
An amine in acid does something useful. The acid donates a proton to it and the free amine becomes an amine salt, and that salt has none of the properties that caused the trouble. It is not volatile, so it cannot reach a nose, and it is readily soluble in water, so it leaves with the rinse instead of clinging to the fibre. The smell is not masked. It has been converted into something that washes away.
In practice this means an acid step, not an acid wash. A soak in cool water with white vinegar or a citric acid powder stirred through it, before the detergent ever gets involved, gives the amines time to be neutralised and dissolved while the water is still mild. Twenty or thirty minutes is enough for the soak to do its work.
The order matters and it matters absolutely. Acid and alkaline detergent put in together simply cancel one another out, and the result is a weak solution that does neither job. Soak first in the acid bath, drain it away completely, and only then run the ordinary wash. The two stages are doing opposite chemistry and they must not meet.
Bicarbonate of soda is the folk remedy that gets suggested here, and it is the wrong direction for this particular smell. Bicarbonate is alkaline, so it will help with acidic odours such as stale perspiration, and it does nothing for a compound that is already a base. The remedy has to be opposite to the problem.
Oils, fibre choice and what holds smell
Polyester is an oil loving fibre in a way cotton is not. Its surface chemistry has a genuine affinity for fats, and oil does not merely sit on a polyester filament but partly migrates into it. Once the oil is inside the fibre, water and surfactant on the outside cannot reach it, and it goes on oxidising and producing smell from a place the wash cannot get to.
This is the reason a polyester apron holds odour where a cotton one lets it go, and the reason a synthetic garment worn in a smelly environment gets worse over months rather than staying level. Each wash removes the surface film and leaves the absorbed portion behind, and the absorbed portion accumulates.
For work that involves fish, cotton and cotton rich blends are the better choice by a wide margin. Cotton is a cellulose fibre with no particular attraction to oil, so what lands on it stays on the surface where detergent can reach it. It also takes hotter water and harsher treatment, which is worth having when a garment needs a serious wash rather than a careful one.
Where polyester is unavoidable, a lipase detergent is the tool that makes the difference. Lipase enzymes break fats into smaller, more water soluble fragments, which gives the wash something it can actually carry away. Enzymes need time and a warm rather than hot wash to work, so a long moderate cycle beats a short intense one.
A routine that clears it each time
Rinse the worst off at the end of the shift while the residue is still fresh, in cool water only. Fresh oil has not yet oxidised or gone sticky and a great deal of it will simply go down the drain. Hot water at this stage is actively unhelpful, since it sets protein residue into the weave in the same way it sets a protein stain.
Then the acid soak, then the wash, in that order and never combined. Use a full dose in a load that has room to move, because a drum packed tight with heavy cotton never develops proper mechanical action and the middle of the load barely gets washed at all. An extra rinse is worth having at the end to carry off the last of the dissolved material.
Dry the garments thoroughly and all the way through. Fabric put away with any dampness in it holds the remaining traces in solution where they stay reactive and keep generating smell, and a coat folded slightly damp will be worse in the morning than it was coming off the line. Thorough drying is a chemical step as much as a practical one.
Keep the working garments separate from everything else at every stage, including the soak, the wash and the bag they travel in. The oils transfer readily from one wet fabric to another in a shared drum, which is how a shirt that never went near a fish counter comes out smelling faintly of one. Once that has happened the shirt needs the same treatment as the coat did.
Working clothes in San Antonio heat
Heat accelerates every part of this. Oxidation of the fats runs faster when it is warm, and a coat left in a bag at the end of a shift in a hot room will have moved a long way down that road before it ever reaches water. Getting the garments rinsed and into the wash while they are still recent counts for more here than it would in a cooler climate.
The dryness cuts the other way and helps. Garments dry thoroughly and stay dry in storage, which removes the mustiness that afflicts working kit in humid places. The thing to guard against is the opposite habit, the pile left in a sealed bag or a closed locker where the air cannot move and the residue stays wet.
Trade work steps up through the back half of the year as the holidays approach and counters get busier, which means more garments, longer wear and less patience for a wash that does not work. WaveMAX San Antonio has machines large enough to run a full set of heavy cotton with room to spare, which is what a proper soak and wash needs.
Getting the work wash right
Heavy cotton needs water, movement and space. A big drum lets an acid soak reach the whole garment and lets the wash that follows flush the loosened residue out rather than pushing it around a packed load. It also keeps the working clothes well apart from the rest of the household laundry.
The machines at our self-service laundry on Jackson Keller Road give a set of coats and fishmonger aprons enough room to tumble freely, which is what generates the mechanical action that carries loosened oil away rather than redistributing it through a bundle packed too tightly to move.
Our machines and the store are cleaned daily.
Our wash-dry-fold service covers the everyday laundry.
For general guidance, The American Cleaning Institute publishes a laundry basics guide that is a useful cross-check.
The short version
Fish smell is trimethylamine, a volatile alkaline compound, plus unsaturated oils that oxidise into rancid aldehydes. Alkaline detergent keeps the amine in its smelly form, which is why a normal wash falls short. Soak in cool water with vinegar or citric acid first, drain it, then wash normally. Cotton releases the oils, polyester absorbs them, and anything put away damp will smell again.
WaveMAX San Antonio is at 2525 Jackson Keller Rd., easy to reach from San Antonio and the surrounding area. If you have a load that will not fit at home, call us at 210-314-3699.
