A method of starting a three-phase BLDC motor comprising a stator with three phase windings (U, V, W) and a rotor with a permanent magnet, and current sensing means adapted for measuring a phase current (Iu, Iv, Iw) in at least two of the windings, the method comprising: a) determining an initial angular position of the rotor magnet; b) applying a first set of sinusoidal energizing signals (Elu, E1v, E1w) sampled at a first angle (φ1) to the phase windings (U, V, W) for causing first stator currents (Istat_u1, Istat_v1, Istat_w1) to flow in the windings (U, V, W) thereby generating a first magnetic field oriented in a first direction different from the initial direction of the magnetic field of the rotor magnet, the first set of energizing signals corresponding to a set of values of three sinusoidal waveforms shifted apart by 120° and 240° sampled at the first angle (φ1); and maintaining the first set of energizing signals for allowing the rotor to move to a first angular position different from the initial angular position, the rotor movement causing BEMF voltages to be induced and corresponding currents (Irot_u, Irot_v, Irot_w) to flow in the windings; characterized in that c) while maintaining the first set of sinusoidal energizing signals (Elu, E1v, E1w), two of the motor phase currents (Iu and Iv; Iu and Iw; Iv and Iw) flowing through two of the phase windings (U and V; U and W; V and W) are monitored using the current sensing means, and that it is determined whether a predefined condition is satisfied, the predefined condition comprising testing whether a ratio of said two phase current values is substantially equal to a predefined value, and if the outcome of the test is true, to apply a commutation by repeating steps b) and c) at least once, but instead of applying the first set of sinusoidal energizing signals, applying a second respectively further set of sinusoidal energizing signals ((E2u, E2v, E2w); (Efu, Efv, Efw)) sampled at a second respectively further angular position (φ1, φf) different from the set of sinusoidal energizing signals applied in the previous iteration to thereby move the rotor to the second respectively further angular position (φ2, φf); wherein the first, second and any further angles are selected from a limited group of discrete angular positions. wherein step c) further comprises one or more of the following: (i) monitoring the phase currents during a predefined time window; (ii) determining whether the monitored phase currents are increasing or decreasing with time; (iii) taking into account that one of the monitored phase currents is larger than the other monitored phase current. a) determining an initial angular position of the rotor magnet; b) applying a first set of sinusoidal energizing signals (Elu, E1v, E1w) sampled at a first angle (φ1) to the phase windings (U, V, W) for causing first stator currents (Istat_u1, Istat_v1, Istat_w1) to flow in the windings (U, V, W) thereby generating a first magnetic field oriented in a first direction different from the initial direction of the magnetic field of the rotor magnet, the first set of energizing signals corresponding to a set of values of three sinusoidal waveforms shifted apart by 120° and 240° sampled at the first angle (φ1); and maintaining the first set of energizing signals for allowing the rotor to move to a first angular position different from the initial angular position, the rotor movement causing BEMF voltages to be induced and corresponding currents (Irot_u, Irot_v, Irot_w) to flow in the windings; characterized in that c) while maintaining the first set of sinusoidal energizing signals (Elu, E1v, E1w), two of the motor phase currents (Iu and Iv; Iu and Iw; Iv and Iw) flowing through two of the phase windings (U and V; U and W; V and W) are monitored using the current sensing means, and that it is determined whether a predefined condition is satisfied, the predefined condition comprising testing whether a ratio of said two phase current values is substantially equal to a predefined value, and if the outcome of the test is true, to apply a commutation by repeating steps b) and c) at least once, but instead of applying the first set of sinusoidal energizing signals, applying a second respectively further set of sinusoidal energizing signals ((E2u, E2v, E2w); (Efu, Efv, Efw)) sampled at a second respectively further angular position (φ1, φf) different from the set of sinusoidal energizing signals applied in the previous iteration to thereby move the rotor to the second respectively further angular position (φ2, φf); wherein the first, second and any further angles are selected from a limited group of discrete angular positions. wherein step c) further comprises one or more of the following: (i) monitoring the phase currents during a predefined time window; (ii) determining whether the monitored phase currents are increasing or decreasing with time; (iii) taking into account that one of the monitored phase currents is larger than the other monitored phase current. (i) monitoring the phase currents during a predefined time window; (ii) determining whether the monitored phase currents are increasing or decreasing with time; (iii) taking into account that one of the monitored phase currents is larger than the other monitored phase current.