diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/PumpStatusResponseMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/PumpStatusResponseMessage.java
index 7afec5012a1f53eecf855cd4deb4ec78fc663d95..4b591cc75c93bbe5106f9c8229307eceaae023fb 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/message/PumpStatusResponseMessage.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/message/PumpStatusResponseMessage.java
@@ -68,48 +68,47 @@ public class PumpStatusResponseMessage extends MedtronicSendMessageResponseMessa
             Log.d(TAG, "PAYLOAD: " + outputString);
         }
         // Status Flags
-        suspended = ((statusBuffer.get(0x03) & 0x01) != 0x00);
-        bolusing = ((statusBuffer.get(0x03) & 0x02) != 0x00);
-        deliveringInsulin = ((statusBuffer.get(0x03) & 0x10) != 0x00);
-        tempBasalActive = ((statusBuffer.get(0x03) & 0x20) != 0x00);
-        cgmActive = ((statusBuffer.get(0x03) & 0x40) != 0x00);
+        suspended = (statusBuffer.get(0x03) & 0x01) != 0x00;
+        bolusing = (statusBuffer.get(0x03) & 0x02) != 0x00;
+        deliveringInsulin = (statusBuffer.get(0x03) & 0x10) != 0x00;
+        tempBasalActive = (statusBuffer.get(0x03) & 0x20) != 0x00;
+        cgmActive = (statusBuffer.get(0x03) & 0x40) != 0x00;
 
         // Active basal pattern
-        activeBasalPattern = (statusBuffer.get(0x1a));
+        activeBasalPattern = statusBuffer.get(0x1a);
 
         // Normal basal rate
         long rawNormalBasal = statusBuffer.getInt(0x1b);
-        basalRate = (new BigDecimal(rawNormalBasal / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue());
+        basalRate = new BigDecimal(rawNormalBasal / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
 
         // Temp basal rate
-        // TODO - need to figure this one out
-        //long rawTempBasal = statusBuffer.getShort(0x21) & 0x0000ffff;
-        //pumpRecord.setTempBasalRate(new BigDecimal(rawTempBasal / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue());
+        long rawTempBasal = statusBuffer.getShort(0x21) & 0x0000ffff;
+        tempBasalRate = new BigDecimal(rawTempBasal / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
 
         // Temp basal percentage
-        tempBasalPercentage = (statusBuffer.get(0x23));
+        tempBasalPercentage = statusBuffer.get(0x23);
 
         // Temp basal minutes remaining
-        tempBasalMinutesRemaining = ((short) (statusBuffer.getShort(0x24) & 0x0000ffff));
+        tempBasalMinutesRemaining = (short) (statusBuffer.getShort(0x24) & 0x0000ffff);
 
         // Units of insulin delivered as basal today
         // TODO - is this basal? Do we have a total Units delivered elsewhere?
-        basalUnitsDeliveredToday = (statusBuffer.getInt(0x26));
+        basalUnitsDeliveredToday = statusBuffer.getInt(0x26);
 
         // Pump battery percentage
-        batteryPercentage = ((statusBuffer.get(0x2a)));
+        batteryPercentage = statusBuffer.get(0x2a);
 
         // Reservoir amount
         long rawReservoirAmount = statusBuffer.getInt(0x2b);
-        reservoirAmount = (new BigDecimal(rawReservoirAmount / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue());
+        reservoirAmount = new BigDecimal(rawReservoirAmount / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
 
         // Amount of insulin left in pump (in minutes)
         byte insulinHours = statusBuffer.get(0x2f);
         byte insulinMinutes = statusBuffer.get(0x30);
-        minutesOfInsulinRemaining = ((short) ((insulinHours * 60) + insulinMinutes));
+        minutesOfInsulinRemaining = (short) ((insulinHours * 60) + insulinMinutes);
 
         // Active insulin
-        long rawActiveInsulin = statusBuffer.getShort(0x33) & 0x0000ffff;
+        long rawActiveInsulin = statusBuffer.getInt(0x31);
         activeInsulin = new BigDecimal(rawActiveInsulin / 10000f).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
 
         // CGM SGV
@@ -119,11 +118,11 @@ public class PumpStatusResponseMessage extends MedtronicSendMessageResponseMessa
             sgv = 0;
             rtc = 0;
             offset = 0;
-            cgmTrend = (PumpStatusEvent.CGM_TREND.NOT_SET);
+            cgmTrend = PumpStatusEvent.CGM_TREND.NOT_SET;
         } else {
             rtc = statusBuffer.getInt(0x37) & 0x00000000ffffffffL;
             offset = statusBuffer.getInt(0x3b);
-            cgmTrend = (PumpStatusEvent.CGM_TREND.fromMessageByte(statusBuffer.get(0x40)));
+            cgmTrend = PumpStatusEvent.CGM_TREND.fromMessageByte(statusBuffer.get(0x40));
         }
 
         // SGV Date
@@ -133,19 +132,20 @@ public class PumpStatusResponseMessage extends MedtronicSendMessageResponseMessa
 
         // Predictive low suspend
         // TODO - there is more status info in this byte other than just a boolean yes/no
-        lowSuspendActive = (statusBuffer.get(0x3f) != 0);
+        lowSuspendActive = statusBuffer.get(0x3f) != 0;
 
         // Recent Bolus Wizard BGL
-        recentBolusWizard = (statusBuffer.get(0x48) != 0);
-        bolusWizardBGL = (statusBuffer.getShort(0x49) & 0x0000ffff); // In mg/DL
+        recentBolusWizard = statusBuffer.get(0x48) != 0;
+        bolusWizardBGL = statusBuffer.getShort(0x49) & 0x0000ffff; // In mg/DL
     }
 
     /**
      * update pumpRecord with data read from pump
      *
      * @param pumpRecord
+     * @param pumpOffset
      */
-    public void updatePumpRecord(PumpStatusEvent pumpRecord) {
+    public void updatePumpRecord(PumpStatusEvent pumpRecord, long pumpOffset) {
         // Status Flags
         pumpRecord.setSuspended(suspended);
         pumpRecord.setBolusing(bolusing);
@@ -159,6 +159,9 @@ public class PumpStatusResponseMessage extends MedtronicSendMessageResponseMessa
         // Normal basal rate
         pumpRecord.setBasalRate(basalRate);
 
+        // Temp basal rate
+        pumpRecord.setTempBasalRate(tempBasalRate);
+
         // Temp basal percentage
         pumpRecord.setTempBasalPercentage(tempBasalPercentage);
 
@@ -185,7 +188,7 @@ public class PumpStatusResponseMessage extends MedtronicSendMessageResponseMessa
 
         // SGV Date
         pumpRecord.setCgmTrend(cgmTrend);
-        pumpRecord.setEventDate(new Date(sgvDate.getTime() - pumpRecord.getPumpTimeOffset()));
+        pumpRecord.setEventDate(new Date(sgvDate.getTime() - pumpOffset));
 
         // Predictive low suspend
         // TODO - there is more status info in this byte other than just a boolean yes/no