--- /dev/null
+--- /usr/src/kernel/linux-2.4.26/net/ipv4/netfilter/ipt_ULOG.c 2003-08-25 15:44:44.000000000 +0400
++++ ipt_ULOG.c 2004-08-09 10:54:04.000000000 +0400
+@@ -165,6 +165,7 @@
+ size_t size, copy_len;
+ struct nlmsghdr *nlh;
+ struct ipt_ulog_info *loginfo = (struct ipt_ulog_info *) targinfo;
++ struct timeval now;
+
+ /* ffs == find first bit set, necessary because userspace
+ * is already shifting groupnumber, but we need unshifted.
+@@ -211,8 +212,14 @@
+
+ /* copy hook, prefix, timestamp, payload, etc. */
+ pm->data_len = copy_len;
+- pm->timestamp_sec = (*pskb)->stamp.tv_sec;
+- pm->timestamp_usec = (*pskb)->stamp.tv_usec;
++ if ((*pskb)->stamp.tv_sec) {
++ pm->timestamp_sec = (*pskb)->stamp.tv_sec;
++ pm->timestamp_usec = (*pskb)->stamp.tv_usec;
++ } else {
++ do_gettimeofday(&now);
++ pm->timestamp_sec = now.tv_sec;
++ pm->timestamp_usec = now.tv_usec;
++ }
+ pm->mark = (*pskb)->nfmark;
+ pm->hook = hooknum;
+ if (loginfo->prefix[0] != '\0')