diff --git a/ActiveSync/iCalRecurrenceRule+ActiveSync.m b/ActiveSync/iCalRecurrenceRule+ActiveSync.m
index 621d6f8..66c778c 100644
--- a/ActiveSync/iCalRecurrenceRule+ActiveSync.m
+++ b/ActiveSync/iCalRecurrenceRule+ActiveSync.m
@@ -37,6 +37,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #import <NGCards/iCalEvent.h>
 #import <NGCards/iCalByDayMask.h>
 
+#import <NGCards/iCalDateTime.h>
+#import <NGCards/iCalTimeZone.h>
+
 #import "NSCalendarDate+ActiveSync.h"
 #import "NSDate+ActiveSync.h"
 
@@ -90,7 +93,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         {
           // No byDayMask, we take the event's start date to compute the DayOfWeek
           // 0 == Sunday, 6 == Saturday
-          v = (1 << [[[self parent] startDate] dayOfWeek]);
+          v = (1 << [[[(iCalDateTime *)[[self parent] firstChildWithTag: @"dtstart"] timeZone] computedDateForDate: [[self parent] startDate]] dayOfWeek]);
         }
 
       [s appendFormat: @"<Recurrence_DayOfWeek xmlns=\"Calendar:\">%d</Recurrence_DayOfWeek>", v];
@@ -140,7 +143,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
           // Simple reccurrence rule of type "Monthly"
           type = 2;
           [s appendFormat: @"<Recurrence_DayOfMonth xmlns=\"Calendar:\">%d</Recurrence_DayOfMonth>",
-             (int)[[[self parent] startDate] dayOfMonth]];
+             (int)[[[(iCalDateTime *)[[self parent] firstChildWithTag: @"dtstart"] timeZone] computedDateForDate: [[self parent] startDate]] dayOfMonth]];
         }
     }
   else if ([self frequency] == iCalRecurrenceFrequenceYearly)
@@ -179,9 +182,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         {
           type = 5;
           [s appendFormat: @"<Recurrence_DayOfMonth xmlns=\"Calendar:\">%d</Recurrence_DayOfMonth>",
-             (int)[[[self parent] startDate] dayOfMonth]];
+             (int)[[[(iCalDateTime *)[[self parent] firstChildWithTag: @"dtstart"] timeZone] computedDateForDate: [[self parent] startDate]] dayOfMonth]];
           [s appendFormat: @"<Recurrence_MonthOfYear xmlns=\"Calendar:\">%d</Recurrence_MonthOfYear>",
-             (int)[[[self parent] startDate] monthOfYear]];
+             (int)[[[(iCalDateTime *)[[self parent] firstChildWithTag: @"dtstart"] timeZone] computedDateForDate: [[self parent] startDate]] monthOfYear]];
 
         }
     }
diff --git a/ActiveSync/iCalTimeZone+ActiveSync.m b/ActiveSync/iCalTimeZone+ActiveSync.m
index c4c0071..0842535 100644
--- a/ActiveSync/iCalTimeZone+ActiveSync.m
+++ b/ActiveSync/iCalTimeZone+ActiveSync.m
@@ -128,7 +128,7 @@ struct SYSTEMTIME {
   //uint16_t wStandardYear;
   struct SYSTEMTIME stStandardDate;
   //uint16_t wDaylightYear;
-  struct SYSTEMTIME stDaylightDate;
+  struct SYSTEMTIME stDaylightDate ={0,0,0,0,0,0,0,0};
 
   char standardName[64], daylightName[64];
 
@@ -144,13 +144,17 @@ struct SYSTEMTIME {
 
   period = [self _mostRecentPeriodWithName: @"DAYLIGHT"];  
   if (!period)
-    stStandardDate.wMonth = 0;
-
-  lDaylightBias = (uint32_t) -([period secondsOffsetFromGMT] / 60) - lBias;
-  [period _fillTZDate: &stDaylightDate];
-  //wStandardYear = stStandardDate.wYear;
-  //wDaylightYear = stDaylightDate.wYear;
-
+    {
+      stStandardDate.wMonth = 0;
+      lDaylightBias = 0;
+    }
+  else
+    {
+      lDaylightBias = (uint32_t) -([period secondsOffsetFromGMT] / 60) - lBias;
+      [period _fillTZDate: &stDaylightDate];
+      //wStandardYear = stStandardDate.wYear;
+      //wDaylightYear = stDaylightDate.wYear;
+    }
 
   // We build the timezone
   [bytes appendBytes: &lBias  length: 4];
