Index: /trunk/src/sh_unix.c
===================================================================
--- /trunk/src/sh_unix.c	(revision 342)
+++ /trunk/src/sh_unix.c	(revision 343)
@@ -2317,4 +2317,17 @@
       else /* have a timeserver address */
 	{ 
+	  /* don't call timeserver more than once per second */
+	  static time_t  time_old   = 0;
+	  time_t         time_new;
+	  static time_t  time_saved = 0;
+	  (void) time (&time_new);
+	  if ((time_new == time_old) && (time_saved != 0))
+	    {
+	      time_now = time_saved;
+	      goto end;
+	    }
+	  time_old = time_new;
+
+
 	  fd = connect_port_2 (sh.srvtime.name, sh.srvtime.alt, 
 			       IPPORT_TIMESERVER, 
@@ -2345,5 +2358,6 @@
 	      memcpy(&ttmp, net_time, sizeof(UINT32)); ltmp = ttmp;
 	      time_now = ntohl(ltmp) - UNIXEPOCH;
-	      /* fprintf(stderr, "TIME IS %ld\n", time_now); */
+	      time_saved = time_now;
+
 	      if (failerr == 1) {
 		failerr = 0;
@@ -2356,4 +2370,6 @@
 	    {
 	      (void) time (&time_now);
+	      time_saved = 0;
+
 	      if (failerr == 0)
 		{
@@ -2364,4 +2380,6 @@
 		}
 	    }
+	end:
+	  ; /* 'label at end of compound statement' */
 	}
     }
