There's a bug in Windows daylight saving time for Tehran time zone.
First, it should be said that this bug was there from older versions of Windows. I'm not sure about XP, but it was present in Vista, 7, 8 and now 8.1. and Also on Windows Phone.
In Date and Time settings, You can see when windows is going to set the clock 1 hour forward/backward.
In some years, that date is correct. For example, Windows is going to set the clock 1 hour forward at March 22, 2015; Which is correct.
But if you change current time to October 2015, then Windows wants to set the clock 1 hour forward at March 20, 2016; Which is wrong.
(If you want to replicate this issue, make sure you change your time zone to UTC+3:30 Tehran first)
So Windows is changing the clock at right time in 2015, but it will change the clock 1 day earlier in 2016, 2 days earlier in 2017; 3 days earlier in 2018; 4 days earlier in 2019...
But in 2020 it will again change the clock at right time, if I understand correctly.
The same issue happens in years before 2015. You can change the year to 2014, 2013 and compare the dates that Windows wants to change date to correct daylight saving time from this webpage: http://www.timeanddate.com/time/change/iran/tehran?year=2015
I have talked with Windows support about this issue. The support staff said that he'll file a bug report, but suggested me to post it here too, to reach more attention about this bug.