Faits: Faits: A. V._, né en 1956, a travaillé en qualité de maçon. Le 10 décembre 1993, il a été victime d'un accident de travail qui a entraîné un syndrome lombo-vertébral. La Caisse nationale suisse d'assurance en cas d'accidents (la CNA) a pris les suites de cet événement à sa charge jusqu'au 31 août 1994. L'assuré n'a plus exercé d'activité régulière depuis son accident; son employeur l'a licencié le 8 mars 1995. Le 14 juillet 1995, V._ s'est annoncé à l'assurance-invalidité, en demandant des mesures médicales de réadaptation ainsi qu'une rente. Par décision du 21 mai 1999, l'Office de l'assurance-invalidité pour le canton de Vaud (l'office AI) a rejeté sa demande après avoir arrêté le taux d'invalidité à 26 %. Le Tribunal des assurances du canton de Vaud a toutefois annulé cette décision, par jugement du 8 mai 2000. Il a renvoyé la cause à l'office AI afin qu'il complète l'instruction pour connaître la capacité de travail de l'assuré, d'un point de vue médical et professionnel. Dans ce cadre, l'office AI a recueilli l'avis des docteurs L._ et G._, médecins à l'Hôpital X._ (COMAI). Ces derniers ont attesté que l'assuré présente un trouble somatoforme douloureux persistant sous la forme de lombosciatalgies bilatérales, de cervico-brachialgies droites et de céphalées (F45.4), ainsi qu'un trouble délirant de type somatique (F22.0); ces affections réduisent la capacité de travail à 60 % dans une activité adaptée (rapport du 5 mars 2001). De son côté, le docteur A._, psychiatre au SMR, s'est rallié aux conclusions du COMAI (rapport du 1er mai 2001). L'assuré a suivi un stage auprès d'un atelier de préparation à une activité industrielle légère, qui s'est soldé par un échec (rapport du Centre d'intégration professionnelle APAIL du 12 mars 2002). Pour évaluer l'invalidité de l'assuré, l'office AI a tenu compte d'une capacité de travail de 60 % dans une activité adaptée. La comparaison des revenus avec et sans invalidité (29'344 fr. / 67'145 fr.) a fait apparaître une perte de gain de 56 %, si bien que l'office AI a alloué une demi-rente d'invalidité à l'assuré à compter du 1er décembre 1994, par décision du 9 septembre 2002. Pour évaluer l'invalidité de l'assuré, l'office AI a tenu compte d'une capacité de travail de 60 % dans une activité adaptée. La comparaison des revenus avec et sans invalidité (29'344 fr. / 67'145 fr.) a fait apparaître une perte de gain de 56 %, si bien que l'office AI a alloué une demi-rente d'invalidité à l'assuré à compter du 1er décembre 1994, par décision du 9 septembre 2002. B. V._ a déféré cette décision au Tribunal des assurances en concluant au versement d'une rente entière. L'office AI a conclu à ce que sa décision fût réformée au détriment de l'assuré. La juridiction cantonale a rejeté le recours par jugement du 18 mars 2004. La juridiction cantonale a rejeté le recours par jugement du 18 mars 2004. C. L'assuré interjette recours de droit administratif contre ce jugement dont il demande l'annulation, avec suite de dépens, en concluant derechef au versement d'une rente entière. L'intimé conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer.