This set of fixes/improvements was downloaded from Ubuntu.
Many thanks.

	-mi

--- clara.c
+++ clara.c
@@ -751,11 +751,12 @@
     s[128] = 0;
     logmsg(s);
 
-    if (!trace)
-        return;
-    va_start(args,m);
-    vfprintf(stderr,m,args);
-    fprintf(stderr,"\n");
+    if (trace) {
+        vfprintf(stderr,m,args);
+        fprintf(stderr,"\n");
+    }
+
+    va_end(args);
 }
 
 /*
@@ -775,10 +776,12 @@
     logmsg(s);
 
     /* send to stderr if requested */
-    if (!debug)
-        return;
-    vfprintf(stderr,m,args);
-    fprintf(stderr,"\n");
+    if (debug) {
+        vfprintf(stderr,m,args);
+        fprintf(stderr,"\n");
+    }
+
+    va_end(args);
 }
 
 /*
@@ -797,9 +800,10 @@
     s[128] = 0;
     logmsg(s);
 
-    va_start(args,m);
     vfprintf(stderr,m,args);
     fprintf(stderr,"\n");
+
+    va_end(args);
 }
 
 /* (devel)
--- event.c
+++ event.c
@@ -638,6 +638,8 @@
         }
     }
 
+    va_end(args);
+
 /*
     printf("request (priority %d, mclip=%d, redraw=%d) to draw the message \"%s\"\n",f,mclip,redraw_stline,s);
 */
--- html.c
+++ html.c
@@ -1548,11 +1548,12 @@
     va_list args;
     int n=0,f;
 
-    va_start(args, fmt);
     for (f=0; f==0; ) {
 
         /* try to write */
+        va_start(args, fmt);
         n = vsnprintf(*t+*top+1,*sz-*top-1,fmt,args);
+        va_end(args);
 
         /*
             Some implementations of vsnprintf return -1 when
@@ -1589,11 +1590,12 @@
     va_list args;
     int n=0,f;
 
-    va_start(args, fmt);
     for (f=0; f==0; ) {
 
         /* try to write */
+        va_start(args, fmt);
         n = vsnprintf(text+topt+1,textsz-topt-1,fmt,args);
+        va_end(args);
 
         /*
             Some implementations of vsnprintf return -1 when
