An ignition timing control device of an internal combustion engine, comprising: an ignition device configured to ignite air-fuel mixture of a combustion chamber of the internal combustion engine; a catalyst interposed in an exhaust passage of the internal combustion engine and configured to purify an exhaust gas flowing in the exhaust passage; a water temperature detecting means configured to detect a water temperature of a cooling water of the internal combustion engine; an ignition-timing retarding means (25, S18) configured to correct an ignition timing of the ignition device to a retard side such that an activation of the catalyst is promoted, during an idling operation generated after a cold start of the internal combustion engine; and a startup-timing-water-temperature retard-amount calculating means (25, S13) configured to calculate a retard amount by which the ignition-timing retarding means (25, S18) retards the ignition timing, based on a startup-timing water temperature which is the water temperature indicated at a startup timing of the internal combustion engine, wherein the startup-timing-water-temperature retard-amount calculating means (25, S13) is configured to set the retard amount at a larger level as the startup-timing water temperature becomes higher, in a case that the startup-timing water temperature is lower than or equal to a predetermined temperature (α) which is lower than at least an activating temperature of the catalyst, and to set the retard amount at a smaller level as the startup-timing water temperature becomes higher, in a case that the startup-timing water temperature is higher than the predetermined temperature (α), characterized in that the ignition timing control device further comprises: a current-water-temperature retard-amount calculating means (25, S14) configured to calculate another retard amount based on a current water temperature detected by the water temperature detecting means; and a retard-amount selecting means (25, S15) configured to select a smaller one of the retard amount calculated by the startup-timing-water-temperature retard-amount calculating means (25, S13) and the another retard amount calculated by the current-water-temperature retard-amount calculating means (25, S14), as an actual retard amount by which the ignition-timing retarding means (25, S18) retards the ignition timing. an ignition device configured to ignite air-fuel mixture of a combustion chamber of the internal combustion engine; a catalyst interposed in an exhaust passage of the internal combustion engine and configured to purify an exhaust gas flowing in the exhaust passage; a water temperature detecting means configured to detect a water temperature of a cooling water of the internal combustion engine; an ignition-timing retarding means (25, S18) configured to correct an ignition timing of the ignition device to a retard side such that an activation of the catalyst is promoted, during an idling operation generated after a cold start of the internal combustion engine; and a startup-timing-water-temperature retard-amount calculating means (25, S13) configured to calculate a retard amount by which the ignition-timing retarding means (25, S18) retards the ignition timing, based on a startup-timing water temperature which is the water temperature indicated at a startup timing of the internal combustion engine, wherein the startup-timing-water-temperature retard-amount calculating means (25, S13) is configured to set the retard amount at a larger level as the startup-timing water temperature becomes higher, in a case that the startup-timing water temperature is lower than or equal to a predetermined temperature (α) which is lower than at least an activating temperature of the catalyst, and to set the retard amount at a smaller level as the startup-timing water temperature becomes higher, in a case that the startup-timing water temperature is higher than the predetermined temperature (α), characterized in that the ignition timing control device further comprises: a current-water-temperature retard-amount calculating means (25, S14) configured to calculate another retard amount based on a current water temperature detected by the water temperature detecting means; and a retard-amount selecting means (25, S15) configured to select a smaller one of the retard amount calculated by the startup-timing-water-temperature retard-amount calculating means (25, S13) and the another retard amount calculated by the current-water-temperature retard-amount calculating means (25, S14), as an actual retard amount by which the ignition-timing retarding means (25, S18) retards the ignition timing. a current-water-temperature retard-amount calculating means (25, S14) configured to calculate another retard amount based on a current water temperature detected by the water temperature detecting means; and a retard-amount selecting means (25, S15) configured to select a smaller one of the retard amount calculated by the startup-timing-water-temperature retard-amount calculating means (25, S13) and the another retard amount calculated by the current-water-temperature retard-amount calculating means (25, S14), as an actual retard amount by which the ignition-timing retarding means (25, S18) retards the ignition timing.