Index: xymon/xymond/rrd/do_net.c
===================================================================
--- xymon.orig/xymond/rrd/do_net.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymond/rrd/do_net.c	2012-07-25 17:57:16.000000000 +0200
@@ -145,7 +145,7 @@
 		p = strstr(msg, "\nSeconds:");
 		if (p && (sscanf(p+1, "Seconds: %f", &seconds) == 1)) {
 			setupfn2("%s.%s.rrd", "tcp", testname);
-			snprintf(rrdvalues, sizeof(rrdvalues), "%d:%.2f", (int)tstamp, seconds);
+			snprintf(rrdvalues, sizeof(rrdvalues), "%d:%f", (int)tstamp, seconds);
 			return create_and_update_rrd(hostname, testname, classname, pagepaths, xymonnet_params, xymonnet_tpl);
 		}
 	}
Index: xymon/xymonnet/xymonnet.c
===================================================================
--- xymon.orig/xymonnet/xymonnet.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymonnet/xymonnet.c	2012-07-25 17:57:16.000000000 +0200
@@ -1774,8 +1774,8 @@
 		}
 
 		if (t->duration.tv_sec != -1) {
-			sprintf(msgtext, "\nSeconds: %u.%02u\n", 
-				(unsigned int)t->duration.tv_sec, (unsigned int)t->duration.tv_nsec / 10000000);
+			sprintf(msgtext, "\nSeconds: %f\n", 
+				(unsigned int)t->duration.tv_sec + (unsigned int)t->duration.tv_nsec / 1000000000.0);
 			addtostatus(msgtext);
 		}
 		addtostatus("\n\n");
Index: xymon/xymonnet/dns.c
===================================================================
--- xymon.orig/xymonnet/dns.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymonnet/dns.c	2012-07-25 17:57:16.000000000 +0200
@@ -357,7 +357,7 @@
 		tst = strtok(NULL, ",");
 	}
 	xfree(tspec);
-	sprintf(msg, "\nSeconds: %u.%03u\n", (unsigned int)tspent->tv_sec, (unsigned int)tspent->tv_nsec/1000000);
+	sprintf(msg, "\nSeconds: %f\n", (unsigned int)tspent->tv_sec + (unsigned int)tspent->tv_nsec/1000000000.0);
 	addtobuffer(banner, msg);
 
 	ares_destroy(channel);
Index: xymon/xymonnet/httpresult.c
===================================================================
--- xymon.orig/xymonnet/httpresult.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymonnet/httpresult.c	2012-07-25 17:57:16.000000000 +0200
@@ -295,9 +295,9 @@
 			}
 			if (req->faileddeps) addtostatus(req->faileddeps);
 
-			sprintf(urlmsg, "\nSeconds: %5d.%02d\n\n", 
-				(unsigned int)req->tcptest->totaltime.tv_sec, 
-				(unsigned int)req->tcptest->totaltime.tv_nsec / 10000000 );
+			sprintf(urlmsg, "\nSeconds: %f\n\n", 
+				(unsigned int)req->tcptest->totaltime.tv_sec +
+				(unsigned int)req->tcptest->totaltime.tv_nsec / 1000000000.0);
 			addtostatus(urlmsg);
 			xfree(urlmsg);
 		}
Index: xymon/xymonnet/ldaptest.c
===================================================================
--- xymon.orig/xymonnet/ldaptest.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymonnet/ldaptest.c	2012-07-25 17:57:16.000000000 +0200
@@ -476,8 +476,8 @@
 		}
 		if (req->faileddeps) addtostatus(req->faileddeps);
 
-		sprintf(msgline, "\nSeconds: %u.%02u\n",
-			(unsigned int)req->duration.tv_sec, (unsigned int)req->duration.tv_nsec / 10000000);
+		sprintf(msgline, "\nSeconds: %f\n",
+			(unsigned int)req->duration.tv_sec + (unsigned int)req->duration.tv_nsec / 1000000000.0);
 
 		addtostatus(msgline);
 	}
@@ -496,9 +496,9 @@
 		req = (ldap_data_t *) t->privdata;
 
 		printf("URL        : %s\n", t->testspec);
-		printf("Time spent : %u.%02u\n", 
-			(unsigned int)req->duration.tv_sec, 
-			(unsigned int)req->duration.tv_nsec / 10000000);
+		printf("Time spent : %f\n", 
+			(unsigned int)req->duration.tv_sec +
+			(unsigned int)req->duration.tv_nsec / 1000000000.0);
 		printf("LDAP output:\n%s\n", textornull(req->output));
 		printf("------------------------------------------------------\n");
 	}
Index: xymon/xymonnet/xymonping.c
===================================================================
--- xymon.orig/xymonnet/xymonping.c	2012-07-25 17:57:03.000000000 +0200
+++ xymon/xymonnet/xymonping.c	2012-07-25 17:57:16.000000000 +0200
@@ -356,11 +356,11 @@
 		if (hosts[idx]->received > 0) {
 			printf("%s is alive", inet_ntoa(hosts[idx]->addr.sin_addr));
 			rtt_usecs = (hosts[idx]->rtt_total.tv_sec*1000000 + (hosts[idx]->rtt_total.tv_nsec / 1000)) / hosts[idx]->received;
-			if (rtt_usecs >= 1000) {
-				printf(" (%lu ms)\n", rtt_usecs / 1000);
+			if (rtt_usecs >= 3000) {
+				printf(" (%.1f ms)\n", rtt_usecs / 1000.0);
 			}
 			else {
-				printf(" (0.%02lu ms)\n", (rtt_usecs / 10));
+				printf(" (%u usec)\n", rtt_usecs);
 			}
 		}
 		else {
