A method of remotely updating firmware saved in a FLASH memory of a communication device connected to a network, the method comprising steps of: a) providing a boot page of the FLASH memory for storing a first firmware load; b) providing a pair of update pages (30, 32) of the FLASH memory, each update page being adapted to store a respective firmware load; c) designating one of the update pages as an active update page, and the other one of the update pages as an inactive update page; providing an active page flag which points to the designated active update page; d) transmitting an updated firmware load through the network to the communication device; e) storing, under control of the first firmware load, the updated firmware load in the inactive update page of the FLASH memory; modifying the active page flag to point to the inactive update page, whereby the inactive update page will become the active update page upon a subsequent reboot of the communication device, and f) rebooting the communication device under control of the first firmware load, including steps of: i) identifying, from among the firmware loads stored in the FLASH memory, a most recently updated valid firmware load; and ii) continuing operation of the communication device under control of the identified most recently updated valid firmware load, wherein the most recently updated valid firmware load is the firmware load in the active page if it is valid, and if the update firmware load in the active page is invalid the most recently updated valid firmware load is the firmware load in the inactive page. a) providing a boot page of the FLASH memory for storing a first firmware load; b) providing a pair of update pages (30, 32) of the FLASH memory, each update page being adapted to store a respective firmware load; c) designating one of the update pages as an active update page, and the other one of the update pages as an inactive update page; providing an active page flag which points to the designated active update page; d) transmitting an updated firmware load through the network to the communication device; e) storing, under control of the first firmware load, the updated firmware load in the inactive update page of the FLASH memory; modifying the active page flag to point to the inactive update page, whereby the inactive update page will become the active update page upon a subsequent reboot of the communication device, and f) rebooting the communication device under control of the first firmware load, including steps of: i) identifying, from among the firmware loads stored in the FLASH memory, a most recently updated valid firmware load; and ii) continuing operation of the communication device under control of the identified most recently updated valid firmware load, wherein the most recently updated valid firmware load is the firmware load in the active page if it is valid, and if the update firmware load in the active page is invalid the most recently updated valid firmware load is the firmware load in the inactive page. i) identifying, from among the firmware loads stored in the FLASH memory, a most recently updated valid firmware load; and ii) continuing operation of the communication device under control of the identified most recently updated valid firmware load, wherein the most recently updated valid firmware load is the firmware load in the active page if it is valid, and if the update firmware load in the active page is invalid the most recently updated valid firmware load is the firmware load in the inactive page.