Index: ChangeLog
===================================================================
--- ChangeLog	(revision 4652)
+++ ChangeLog	(working copy)
@@ -5,6 +5,15 @@
 $Id$
 $URL$
 
+2010-03-31 Frank Weber <opionline@yahoo.de>
+
+  * YAM_UT.c: Initialize the DateStamp->ds_Days in the functions
+    String2DateStamp() and DateStamp2String() if DSS_TIME is used.
+    This closes #145.
+  * YAM_AB.c: Do the birthday compare only if here is really anthing to compare.
+    Use the saved BirthdayCheckTime seconds (ticks) for the next check too.
+  * YAM_COs.c: minor cosmetic change.
+
 2010-03-25 Frank Weber <opionline@yahoo.de>
 
   * YAM_COg.c, YAM_FI.c, YAM_main.h, YAM_stringsizes.h, locale/YAM.cd:
Index: src/YAM_AB.c
===================================================================
--- src/YAM_AB.c	(revision 4652)
+++ src/YAM_AB.c	(working copy)
@@ -515,7 +515,7 @@
     {
       struct ABEntry *ab = tn->tn_User;
 
-      if(ab->Type == AET_USER)
+      if(ab->Type == AET_USER && ab->BirthDay != 0)
       {
         ldiv_t birthday = ldiv(ab->BirthDay, 10000);
 
@@ -538,7 +538,6 @@
           }
         }
       }
-
       i++;
     }
   }
@@ -546,7 +545,7 @@
   // reschedule the birthday check for the configured check time
   DateStamp(&nextDS);
   nextDS.ds_Minute = C->BirthdayCheckTime.ds_Minute;
-  nextDS.ds_Tick = 0;
+  nextDS.ds_Tick = C->BirthdayCheckTime.ds_Tick;
 
   DateStamp2TimeVal(&nextDS, &nextTV, TZC_NONE);
 
Index: src/YAM_UT.c
===================================================================
--- src/YAM_UT.c	(revision 4652)
+++ src/YAM_UT.c	(working copy)
@@ -2400,6 +2400,9 @@
   if(date == NULL)
     date = DateStamp(&dsnow);
 
+  if(mode == DSS_TIME)
+    date->ds_Days = 0;
+
   // now we fill the DateTime structure with the data for our request.
   dt.dat_Stamp   = *date;
   dt.dat_Format  = (mode == DSS_USDATETIME || mode == DSS_UNIXDATE) ? FORMAT_USA : FORMAT_DEF;
@@ -2673,6 +2676,7 @@
 
     case DSS_TIME:
     {
+      dst->ds_Days = 0;
       strlcpy(timestr, string, sizeof(timestr));
       // ignore the date part
       datestrPtr = NULL;
Index: src/YAM_COs.c
===================================================================
--- src/YAM_COs.c	(revision 4652)
+++ src/YAM_COs.c	(working copy)
@@ -1541,7 +1541,7 @@
           else if(stricmp(buf, "ShowFilterStats") == 0)   co->ShowFilterStats = Txt2Bool(value);
           else if(stricmp(buf, "BirthdayCheckTime") == 0)
           {
-             String2DateStamp(&co->BirthdayCheckTime, value, DSS_TIME, TZC_NONE);
+            String2DateStamp(&co->BirthdayCheckTime, value, DSS_TIME, TZC_NONE);
           }
           else
             W(DBF_CONFIG, "unknown config option: '%s' = '%s'", buf, value);
