--- openntpd-3.9p1.orig/server.c	2006-05-14 07:29:21.000000000 +0200
+++ openntpd-3.9p1/server.c	2010-07-02 15:33:05.061342638 +0200
@@ -150,21 +150,33 @@ server_dispatch(int fd, struct ntpd_conf
 	version = (query.status & VERSIONMASK) >> 3;
 
 	bzero(&reply, sizeof(reply));
-	if (conf->status.synced)
+	if (conf->status.synced || conf->ignore)
 		reply.status = conf->status.leap;
 	else
 		reply.status = LI_ALARM;
+
 	reply.status |= (query.status & VERSIONMASK);
 	if ((query.status & MODEMASK) == MODE_CLIENT)
 		reply.status |= MODE_SERVER;
 	else
 		reply.status |= MODE_SYM_PAS;
 
-	reply.stratum =	conf->status.stratum;
+	if (conf->ignore) {
+		reply.stratum = 1;
+		reply.precision = -20;
+	} else {
+		reply.stratum =	conf->status.stratum;
+		reply.precision = conf->status.precision;
+	}
+
 	reply.ppoll = query.ppoll;
-	reply.precision = conf->status.precision;
 	reply.rectime = d_to_lfp(rectime);
-	reply.reftime = d_to_lfp(conf->status.reftime);
+
+	if (conf->ignore)
+		reply.reftime = d_to_lfp(gettime());
+	else
+		reply.reftime = d_to_lfp(conf->status.reftime);
+
 	reply.xmttime = d_to_lfp(gettime());
 	reply.orgtime = query.xmttime;
 	reply.rootdelay = d_to_sfp(conf->status.rootdelay);
