diff -ru orig/laptop-net-2.26/src/ifmon.c laptop-net-2.26/src/ifmon.c
--- orig/laptop-net-2.26/src/ifmon.c	2005-03-01 22:49:00.000000000 +0100
+++ laptop-net-2.26/src/ifmon.c	2009-10-28 14:25:58.000000000 +0100
@@ -134,7 +134,7 @@
 {
   unsigned int old_status = (record -> status);
   double old_change_time = (record -> change_time);
-  double now = (get_real_time ());
+  double now = (get_mono_time ());
   (record -> mark) = 1;
 #ifdef IFMON_DEBUG
   syslog (LOG_INFO, "process_record: %s 0x%02x 0x%02x\n",
diff -ru orig/laptop-net-2.26/src/Makefile.in laptop-net-2.26/src/Makefile.in
--- orig/laptop-net-2.26/src/Makefile.in	2009-10-28 14:26:10.000000000 +0100
+++ laptop-net-2.26/src/Makefile.in	2009-10-28 14:13:39.000000000 +0100
@@ -169,7 +169,7 @@
 am_ifd_OBJECTS = ifd.$(OBJEXT) ifmon.$(OBJEXT) probe.$(OBJEXT) \
 	utils.$(OBJEXT)
 ifd_OBJECTS = $(am_ifd_OBJECTS)
-ifd_LDADD = $(LDADD)
+ifd_LDADD = $(LDADD) -lrt
 ifd_DEPENDENCIES =
 ifd_LDFLAGS =
 am_linkup_OBJECTS = linkup.$(OBJEXT) probe.$(OBJEXT)
Only in laptop-net-2.26/src: semantic.cache
diff -ru orig/laptop-net-2.26/src/utils.c laptop-net-2.26/src/utils.c
--- orig/laptop-net-2.26/src/utils.c	2005-03-01 22:42:50.000000000 +0100
+++ laptop-net-2.26/src/utils.c	2009-10-28 14:14:27.000000000 +0100
@@ -26,6 +26,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
+#include <time.h>
 #include <errno.h>
 #include <syslog.h>
 #include <sys/types.h>
@@ -151,3 +152,16 @@
     (((double) (tv . tv_sec))
      + (((double) (tv . tv_usec)) / 1000000.));
 }
+
+double
+get_mono_time (void)
+{
+  struct timespec tp;
+  int ret;
+
+  ret = clock_gettime(CLOCK_MONOTONIC, &tp);
+  if (ret < 0)
+    return 0.0;
+
+  return ((double) tp . tv_sec) + (((double) tp . tv_nsec) / 1000000000.0);
+}
diff -ru orig/laptop-net-2.26/src/utils.h laptop-net-2.26/src/utils.h
--- orig/laptop-net-2.26/src/utils.h	2005-03-01 22:42:50.000000000 +0100
+++ laptop-net-2.26/src/utils.h	2009-10-28 14:13:01.000000000 +0100
@@ -33,5 +33,6 @@
 extern void log_error (const char *);
 extern char * read_line (FILE *);
 extern double get_real_time (void);
+extern double get_mono_time (void);
 
 #endif /* not AUTONET_UTILS_H */
