A method of remote metering the consumption of utilities distributed through a public distribution network (HV, MV, LV) to a plurality of consumers (H1, H2,..., Hn), each consumer being associated with at least one remote meter, wherein - each of the plurality of remote meters measures a consumption and reports the measured consumption to a concentrator associated with said plurality of remote meters, and - said concentrator communicates with said plurality of remote meters in order to collect consumption data and perform tasks related to the administration of its associated remote meters; - each of said remote meters having a host controller and a program memory (PM1, PM2), said host controller executing programs by performing a sequence of instructions defined by program data stored in said program memory (PM1, PM2), - wherein said concentrator performs the operation of - transmitting said program data (SC5, SC8) to at least one of said remote meters; wherein at least one of said remote meters performs the operation of - receiving said program data (SM4, SM11, SM13); and - updating at least a portion of said programs stored in said program memory in accordance with the received program data; - wherein said step of receiving said program data comprises storing said program data in a non-volatile buffer memory; - the operation of updating said program stored in said program memory being performed by said host controller executing a program data swap routine stored in a non-volatile memory area protected against any program data change, comprising - checking (SM6, SM7) whether the program data stored in said buffer memory are correct; - if the program data in said buffer memory are correct, copying the program data stored in said buffer memory into said program memory; - checking whether the copied data in said program memory are correct; and - if the copied data are found to be not correct, repeating (SM19, SM20) the step of copying the program data stored in said buffer memory into said program memory. - each of the plurality of remote meters measures a consumption and reports the measured consumption to a concentrator associated with said plurality of remote meters, and - said concentrator communicates with said plurality of remote meters in order to collect consumption data and perform tasks related to the administration of its associated remote meters; - each of said remote meters having a host controller and a program memory (PM1, PM2), said host controller executing programs by performing a sequence of instructions defined by program data stored in said program memory (PM1, PM2), - wherein said concentrator performs the operation of - transmitting said program data (SC5, SC8) to at least one of said remote meters; - receiving said program data (SM4, SM11, SM13); and - updating at least a portion of said programs stored in said program memory in accordance with the received program data; - wherein said step of receiving said program data comprises storing said program data in a non-volatile buffer memory; - the operation of updating said program stored in said program memory being performed by said host controller executing a program data swap routine stored in a non-volatile memory area protected against any program data change, comprising - checking (SM6, SM7) whether the program data stored in said buffer memory are correct; - if the program data in said buffer memory are correct, copying the program data stored in said buffer memory into said program memory; - checking whether the copied data in said program memory are correct; and - if the copied data are found to be not correct, repeating (SM19, SM20) the step of copying the program data stored in said buffer memory into said program memory.