Index: /trunk/psLib/src/sys/psTrace.c
===================================================================
--- /trunk/psLib/src/sys/psTrace.c	(revision 8475)
+++ /trunk/psLib/src/sys/psTrace.c	(revision 8476)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.72 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-08-22 21:53:49 $
+ *  @version $Revision: 1.73 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-08-22 23:45:34 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -592,5 +592,14 @@
 
         if (traceMsg) {
-            char line[MAX_TRACE_LENGTH + 1];
+            // calculate the length of the formatted string
+            // XXX this may or may not be a performance issue
+            #if 1
+            ssize_t traceLength = vsnprintf(NULL, 0, format, ap);
+            #else
+
+            ssize_t traceLength = MAX_TRACE_LENGTH;
+            #endif
+
+            char line[traceLength + 1];
 
             // We indent each message one space for each level of the message.
@@ -598,5 +607,5 @@
                 write (traceFD, " ", 1);
             }
-            vsnprintf(line, MAX_TRACE_LENGTH, format, ap);
+            vsnprintf(line, traceLength, format, ap);
             write (traceFD, line, strlen(line));
             if (line[strlen(line) - 1] != '\n') {
