Mohanthal (Gujarati Besan Barfi)
A grainy, ghee-rich Gujarati besan barfi, with the texture built in at the dhabo stage before roasting.
Mohanthal is a Gujarati fudge made by rubbing hot ghee and a little milk into coarse gram flour (a step called dhabo) before slow-roasting it to deep gold and binding it with one-string sugar syrup. The dhabo step is what makes or breaks it: skip it or rush it and the barfi turns smooth and halwa-like instead of properly grainy, which is the whole point of mohanthal.
VegetarianNo wheat Gram flour contains no wheat, but check your besan — some brands are milled alongside wheat and carry a cross-contamination warning. The fine-besan swap below adds semolina, which is wheat. Not vegan: ghee and milk go into the dhabo itself. Contains pistachios and almonds.
Mohanthal is the barfi Gujarati households make for Diwali and weddings, and it’s instantly recognisable by its texture: distinctly grainy, almost sandy, in a way that separates it from the dense, smooth besan barfi sold in most sweet shops. That grain doesn’t come from the roasting alone. It comes from a step most recipes outside Gujarati kitchens skip entirely.
That step is called dhabo — rubbing hot ghee and a splash of warm milk into the dry, coarse besan before it ever touches heat, then letting it rest so the fat works its way into every granule. Done right, it’s the difference between a mohanthal that shatters into coarse, buttery crumbs in your mouth and one that behaves like a bland besan ladoo pressed flat into a tin. Most home cooks who’ve had disappointing results either used fine besan meant for pakoras, or they went straight from mixing to roasting without the rest period.
Mohanthal or besan barfi?
Every mohanthal is a besan barfi; not every besan barfi is mohanthal. Both start as gram flour, usually a coarse grind, roasted in ghee. Both are bound with one-string syrup and cut into pieces from a tin. Mohanthal is the Gujarati version, and two things separate it.
The first is the dhabo: hot ghee and milk rubbed into the besan and left to rest for 20 to 30 minutes before it sees the pan. The second is that it is pressed into the tin rather than spread, so the grain the dhabo built survives the set. What you get breaks into buttery crumbs. It usually carries saffron and cardamom too, and in richer versions a little khoya.
The besan barfi in most sweet shops is smoother and denser, a fudge that melts slowly rather than crumbles. Neither is the wrong one. If the smooth version is what you were after, the besan barfi here is that recipe. It rubs in milk alone, with no hot ghee, rests only briefly, and is spread into the tin while still loose.
The roast is the whole recipe
Once the dhabo is done, the actual roasting is unhurried but unforgiving. Low heat, constant stirring, 25 minutes minimum — there’s no shortcut here the way there sometimes is with a quick stovetop gajar ka halwa. The besan goes through a pale, raw-smelling stage, then a loose, nutty-smelling stage, and only then does it reach the deep brass-gold colour that tells you it’s actually cooked through. Pull it too early and the barfi tastes of raw flour no matter how good your syrup is.
The syrup stage matters too, though it’s more forgiving than the sugar work in something like kaju katli. One-string consistency is all you need — go past it and the mohanthal sets too firm to cut into neat pieces, closer to a brittle than a fudge.
Ingredients
Tap an ingredient to cross it off as you go.
Instructions
- Put the coarse besan in a wide bowl. Warm 3 tablespoons of the ghee until it is hot but not smoking, pour it over the besan along with the warm milk, and rub it in with your fingertips like you're making a crumbly pastry dough. This is the dhabo: keep rubbing for a full 5 minutes until the mixture looks like wet sand and holds together briefly when you squeeze a fistful.
- Cover the bowl and let it rest 20 to 30 minutes. This gives the fat time to soak into every granule of besan, which is what gives mohanthal its grainy bite instead of a smooth halwa texture.
- Heat the remaining ghee in a heavy kadai or wide saucepan over low heat. Add the rested besan and start stirring immediately and constantly — it scorches fast at this stage. Cook on low for 25 to 35 minutes, breaking up any clumps with the back of your spoon.
- Watch for the colour to shift from pale yellow to a deep golden, like the shade of old brass, and for the smell to turn distinctly nutty and toasted. The mixture will also loosen and start to release ghee at the edges of the pan — that's your sign it's close.
- Meanwhile, make the syrup: combine sugar and water in a small pan, bring to a boil, and cook until it reaches one-string consistency — a drop between your thumb and finger stretches into a single unbroken thread. This takes about 6 to 8 minutes; don't let it go further or the barfi will set too hard to cut cleanly.
- Take the roasted besan off the heat. Let it cool for 2 to 3 minutes — pour syrup into besan that's too hot and it'll seize into a lumpy mess instead of setting smooth. Stir in the hot syrup, saffron, cardamom, and milk powder or khoya if using, mixing fast and firmly until everything comes together into a thick, grainy paste.
- Pour the mixture into a greased 8-inch square tin and press down firmly with a flat spatula or the back of a greased bowl — press hard enough that it holds its shape but don't pack it so tight that it loses its characteristic grain.
- Scatter the chopped nuts over the top and press them in lightly so they stick. Let the slab cool completely at room temperature, 3 to 4 hours, before cutting into squares or diamonds.
Ingredient guides: Besan (Gram Flour): Coarse vs Fine, and How to Roast ItKhoya (Mawa)Milk Powder (Whole vs Skimmed)
Ingredient swaps for cooks abroad
- No coarse besan available: sift regular fine besan and add 2 tablespoons of fine semolina (sooji) to mimic the grainy structure — the texture won't be identical but it gets close.
- No khoya for the softer version: whole milk powder (Nido, Anik, or similar) worked into a paste with a tablespoon of warm milk is the closest diaspora-kitchen substitute.
- Saffron is pricey or unavailable: a few drops of kewra (screwpine) water stirred into the syrup gives a similar festive fragrance, or skip the flavouring and lean on the cardamom alone.
- No kadai: a wide, heavy-bottomed stainless steel sauté pan works fine for the roasting step, as long as it's wide enough that the besan sits in a thin layer rather than a deep pile.
Frequently asked questions
- What is the difference between mohanthal and besan barfi?
- Mohanthal is a kind of besan barfi, the Gujarati one. Both are gram flour roasted in ghee and set with one-string sugar syrup. In mohanthal, hot ghee and milk are rubbed into the besan and rested before roasting (the dhabo), and the mixture is pressed into the tin so it keeps a sandy, crumbly grain. The besan barfi most shops sell is smoother and denser, closer to a fudge that melts slowly than one that breaks into crumbs.
- What does dhabo actually mean and why can't I just mix in the ghee while roasting?
- Dhabo is the Gujarati term for rubbing hot ghee and a little milk into raw, coarse besan by hand before cooking, then letting it rest so the fat penetrates each granule. Adding ghee only during roasting coats the besan from the outside but never gets fat into the centre of each granule, so you lose the characteristic sandy, grainy bite and end up with something closer to smooth besan halwa.
- My mohanthal turned out smooth and fudgy instead of grainy — what went wrong?
- This almost always means fine besan was used instead of the coarse, mohanthal-grade besan sold at Indian grocery stores, or the dhabo rest was skipped or cut short. Look specifically for besan labelled coarse or for mohanthal on the packet; regular fine besan, even with a long dhabo rest, won't give the same grain.
- Is it possible to make this without a heavy kadai?
- Yes — a wide, heavy-bottomed stainless steel sauté pan works well as long as the besan sits in a thin layer rather than piled deep, since a deep pile roasts unevenly and scorches at the bottom before the top is done. Nonstick is fine too, but stir constantly regardless of pan type since besan catches quickly once it's hot.
- How far in advance can I make mohanthal for a gathering or festival?
- Mohanthal keeps well for 10 to 12 days at room temperature in an airtight container, and up to 3 weeks refrigerated, since the high ghee content acts as a natural preservative. It actually improves after a day or two as the flavours settle, so making it 2 to 3 days ahead of Diwali or a wedding is standard practice.
- Scaling this up for a big batch — does the method change?
- The ratios hold for doubling or tripling, but the roasting time increases significantly since a deeper pan of besan takes longer to heat through evenly. Roast in batches if you don't have a kadai wide enough to keep the layer under about 2 inches deep, otherwise the centre stays undercooked while the edges brown.