diff --git a/iguana/exchanges/LP_stats.c b/iguana/exchanges/LP_stats.c
index 700b04c26..fdf875cf4 100644
--- a/iguana/exchanges/LP_stats.c
+++ b/iguana/exchanges/LP_stats.c
@@ -20,6 +20,8 @@
 
 #define LP_STATSLOG_FNAME "stats.log"
 
+char *LP_stats_methods[] = { "unknown", "request", "reserved", "connect", "connected", "tradestatus" };
+
 void LP_tradecommand_log(cJSON *argjson)
 {
     static FILE *logfp; char *jsonstr;
@@ -46,8 +48,7 @@ struct LP_swapstats
     struct LP_quoteinfo Q;
     double qprice;
     uint64_t aliceid;
-    uint32_t ind;
-    char method[16];
+    uint32_t ind,methodind;
 } *LP_swapstats;
 
 struct LP_swapstats *LP_swapstats_find(uint64_t aliceid)
@@ -77,12 +78,17 @@ uint64_t LP_aliceid_calc(bits256 desttxid,int32_t destvout,bits256 feetxid,int32
 void LP_swapstats_line(char *line,struct LP_swapstats *sp)
 {
     char tstr[64];
-    sprintf(line,"%s %8s %-4d %9s swap.%016llx: (%.8f %5s) -> (%.8f %5s) qprice %.8f",utc_str(tstr,sp->Q.timestamp),sp->Q.gui,sp->ind,sp->method,(long long)sp->aliceid,dstr(sp->Q.satoshis),sp->Q.srccoin,dstr(sp->Q.destsatoshis),sp->Q.destcoin,sp->qprice);
+    sprintf(line,"%s %8s %-4d %9s swap.%016llx: (%.8f %5s) -> (%.8f %5s) qprice %.8f",utc_str(tstr,sp->Q.timestamp),sp->Q.gui,sp->ind,LP_stats_methods[sp->methodind],(long long)sp->aliceid,dstr(sp->Q.satoshis),sp->Q.srccoin,dstr(sp->Q.destsatoshis),sp->Q.destcoin,sp->qprice);
+}
+
+void LP_swapstats_update(struct LP_swapstats *sp,struct LP_quoteinfo *qp,cJSON *lineobj)
+{
+    
 }
 
 int32_t LP_statslog_parsequote(char *method,cJSON *lineobj)
 {
-    struct LP_swapstats *sp; double qprice; uint32_t timestamp; int32_t destvout,feevout,duplicate=0; char *gui,*base,*rel,line[1024]; uint64_t txfee,satoshis,destsatoshis; bits256 desttxid,feetxid; struct LP_quoteinfo Q; uint64_t aliceid;
+    struct LP_swapstats *sp; double qprice; uint32_t timestamp; int32_t i,methodind,destvout,feevout,duplicate=0; char *gui,*base,*rel,line[1024]; uint64_t aliceid,txfee,satoshis,destsatoshis; bits256 desttxid,feetxid; struct LP_quoteinfo Q;
     memset(&Q,0,sizeof(Q));
     if ( LP_quoteparse(&Q,lineobj) < 0 )
     {
@@ -92,6 +98,12 @@ int32_t LP_statslog_parsequote(char *method,cJSON *lineobj)
     }
     else
     {
+        for (i=methodind=0; i<sizeof(LP_stats_methods)/sizeof(*LP_stats_methods); i++)
+            if ( strcmp(LP_stats_methods[i],method) == 0 )
+            {
+                methodind = i;
+                break;
+            }
         base = jstr(lineobj,"base");
         rel = jstr(lineobj,"rel");
         gui = jstr(lineobj,"gui");
@@ -114,6 +126,11 @@ int32_t LP_statslog_parsequote(char *method,cJSON *lineobj)
         aliceid =  LP_aliceid_calc(desttxid,destvout,feetxid,feevout);
         if ( (sp= LP_swapstats_find(aliceid)) != 0 )
         {
+            if ( methodind > sp->methodind || strcmp(method,"tradestatus") == 0 )
+            {
+                sp->methodind = methodind;
+                LP_swapstats_update(sp,&Q,lineobj);
+            }
             duplicate = 1;
             LP_duplicates++;
         }
@@ -123,6 +140,7 @@ int32_t LP_statslog_parsequote(char *method,cJSON *lineobj)
             {
                 sp->Q = Q;
                 sp->qprice = qprice;
+                sp->methodind = methodind;
                 sp->ind = LP_aliceids++;
                 LP_swapstats_line(line,sp);
                 printf("%s\n",line);