diff --git a/basilisk/basilisk.h b/basilisk/basilisk.h
index 8202fa18d..49a957372 100755
--- a/basilisk/basilisk.h
+++ b/basilisk/basilisk.h
@@ -40,14 +40,14 @@
 
 struct basilisk_request
 {
-    uint32_t requestid,timestamp,quoteid,pad;
-    uint64_t srcamount,minamount;
-    bits256 hash;
-    char src[8],dest[8];
-    char volatile_start,message[43];
-    uint32_t relaybits;
-    uint64_t destamount;
+    uint32_t requestid,timestamp,quoteid,pad; // 0 to 15
+    uint64_t srcamount,minamount; // 16 to 31
+    bits256 hash; // 32 to 63
+    char src[8],dest[8]; // 64 to 79
+    char volatile_start,message[43]; // 80 to 123
+    uint32_t relaybits; // 124 to 127
     bits256 desthash;
+    uint64_t destamount;
 } __attribute__((packed));
 
 struct basilisk_rawtx
diff --git a/basilisk/basilisk_DEX.c b/basilisk/basilisk_DEX.c
index 1dacf125b..c18622b68 100755
--- a/basilisk/basilisk_DEX.c
+++ b/basilisk/basilisk_DEX.c
@@ -21,7 +21,7 @@ uint32_t basilisk_requestid(struct basilisk_request *rp)
 {
     struct basilisk_request R;
     R = *rp;
-    R.requestid = R.quoteid = 0;
+    R.quoteid = R.relaybits = R.pad = R.volatile_start = 0;
     memset(&R.volatile_start,0,(long)&R.volatile_start - (long)&R);
     if ( 0 )
     {
@@ -38,7 +38,7 @@ uint32_t basilisk_quoteid(struct basilisk_request *rp)
 {
     struct basilisk_request R;
     R = *rp;
-    R.relaybits = 0;
+    R.quoteid = R.relaybits = R.pad = R.volatile_start = 0;
     memset(R.message,0,sizeof(R.message));
     return(calc_crc32(0,(void *)&R,sizeof(R)));
 }
@@ -62,6 +62,7 @@ int32_t basilisk_rwDEXquote(int32_t rwflag,uint8_t *serialized,struct basilisk_r
     }
     else
     {
+        rp->pad = rp->volatile_start = 0;
         memcpy(rp->src,&serialized[len],sizeof(rp->src)), len += sizeof(rp->src);
         memcpy(rp->dest,&serialized[len],sizeof(rp->dest)), len += sizeof(rp->dest);
     }