--- a/log.h
+++ b/log.h
@@ -1,6 +1,8 @@
 #ifndef LOG_H
 #define LOG_H
 
+#define STATS_DISPLAY_INTERVAL 5
+
 #include "uint64.h"
 
 extern void log_startup(void);
--- a/log.c
+++ b/log.c
@@ -1,6 +1,7 @@
 #include "buffer.h"
 #include "uint32.h"
 #include "uint16.h"
+#include "time.h"
 #include "error.h"
 #include "byte.h"
 #include "log.h"
@@ -274,11 +275,17 @@ void log_rrsoa(const char server[4],cons
 
 void log_stats(void)
 {
+  static time_t prev = 0;
+  time_t cur = time(NULL);
   extern uint64 numqueries;
   extern uint64 cache_motion;
   extern int uactive;
   extern int tactive;
 
+  if(prev == 0) prev = time(NULL);
+  if(cur - prev < STATS_DISPLAY_INTERVAL) return;
+  prev = cur;
+
   string("stats ");
   number(numqueries); space();
   number(cache_motion); space();
