Index: /tags/ipp-20130712/Ohana/src/opihi/pcontrol/PclientCommand.c
===================================================================
--- /tags/ipp-20130712/Ohana/src/opihi/pcontrol/PclientCommand.c	(revision 37058)
+++ /tags/ipp-20130712/Ohana/src/opihi/pcontrol/PclientCommand.c	(revision 37059)
@@ -25,5 +25,5 @@
     return (PCLIENT_DOWN);
   }
-  
+
   // prepare host to accept response
   host[0].response_state = response_state;
@@ -35,5 +35,14 @@
   return (PCLIENT_GOOD);
 }
-  
+
+# define MARKTIME(MSG,...) {                    \
+    gettimeofday (&stopTimer, (void *) NULL);   \
+    float dtime = DTIME (stopTimer, startTimer);        \
+    fprintf (stderr, MSG, __VA_ARGS__); }
+
+# define INITTIME \
+  struct timeval startTimer, stopTimer; \
+  gettimeofday (&startTimer, (void *) NULL);
+
 // check for response; message must end with specified string.
 // accumulate the response in the buffer
@@ -47,4 +56,6 @@
   ASSERT (response != NULL, "response missing");
   ASSERT (buffer != NULL, "buffer missing");
+
+  // INITTIME;
 
   /* avoid blocking very long on read, test every 100 usec, up to 0.1 sec */
@@ -66,6 +77,12 @@
     return (PCLIENT_DOWN);
   }
-  if (line == NULL) return (PCLIENT_HUNG);
-  if (status == -1) return (PCLIENT_HUNG);
+  if (line == NULL) {
+      // MARKTIME ("-- client hung (line NULL): %s : %f sec\n", host[0].hostname, dtime);
+      return (PCLIENT_HUNG);
+  }
+  if (status == -1) {
+      // MARKTIME ("-- client hung (status -1): %s : %f sec\n", host[0].hostname, dtime);
+      return (PCLIENT_HUNG);
+  }
 
   // fprintf (stderr, "response: %s\n", buffer[0].buffer);
@@ -75,5 +92,5 @@
 
 /* memstr returns a view, not an allocated string : don't free */
-/* ReadtoIOBuffer returns : 
+/* ReadtoIOBuffer returns :
     0 - pipe closed
    -1 - no more data in pipe, data not ready
