diff -Nurb libical-0.44.orig/src/libical/icalrecur.c libical-0.44/src/libical/icalrecur.c
--- libical-0.44.orig/src/libical/icalrecur.c   2009-09-27 04:38:51.000000000 +0200
+++ libical-0.44/src/libical/icalrecur.c        2011-02-09 16:13:44.000000000 +0100
@@ -354,7 +354,7 @@
     char *t, *n;
     int i=0;
     int sign = 1;
-    int weekno = 0;
+    char weekno = 0;           /* note: Novell/Groupwise sends BYDAY=255SU, so we fit in a signed char to get -1 SU for last sunday. */
     icalrecurrencetype_weekday wd;
     short *array = parser->rt.by_day;
     char* end;
