diff --git a/pins.cpp b/pins.cpp
index f689b3b3ca86f482a49aeaae01f943ec1ac43bda..9cc816b4f512f6b3d0805f1b47c89d2e91de190b 100644
--- a/pins.cpp
+++ b/pins.cpp
@@ -158,6 +158,8 @@ void powerOffCheckLoop() {
     Serial.println(groups);
     PINS.stage = "Ramped down";
 
+    // Poll the pins once to get latest status, as interrupts were disabled
+    poll_port_expander();
     // This event has been handled.
     PERFORM_PROCEDURE_FROM_INTERRUPT = 0;
     // Inform SIB that we're done and it can take data again.
diff --git a/rest.cpp b/rest.cpp
index 3a73c7f3ecaa6a83c2bf1c8943357ca80da360d7..a783793d81ba9848e0bfbca17eaffd596898c54f 100644
--- a/rest.cpp
+++ b/rest.cpp
@@ -91,7 +91,7 @@ void identify() {
 
     message += "\n}";
 
-    restServer.send(418, "text/json", message);
+    restServer.send(418, "application/json", message);
 }
 
 void panel() {
@@ -117,7 +117,7 @@ void notFound() {
     }
 
     message += "\n}\n}";
-    restServer.send(404, "text/json", message);
+    restServer.send(404, "application/json", message);
     Serial.println(message);
 }
 
@@ -134,7 +134,8 @@ enum {
 
 void sendSNMP() {
     if (PINS.ramping) {
-        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        restServer.send(403, "application/json",
+                        "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
         return;
     }
     uint8_t output = NONE;
@@ -180,21 +181,23 @@ void sendSNMP() {
 
     http_msg += "\n}";
 
-    restServer.send(success ? 200 : 406, "text/json", http_msg);
+    restServer.send(success ? 200 : 406, "application/json", http_msg);
 }
 
 void getMpodStatus() {
     if (PINS.ramping) {
-        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        restServer.send(403, "application/json",
+                        "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
         return;
     }
 
-    restServer.send(200, "text/json", pproc.toJSON());
+    restServer.send(200, "application/json", pproc.toJSON());
 }
 
 void powerGroup() {
     if (PINS.ramping) {
-        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        restServer.send(403, "application/json",
+                        "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
         return;
     }
     String output;
@@ -247,12 +250,13 @@ void powerGroup() {
     }
     http_msg += "\n}";
 
-    restServer.send(success ? 200 : 406, "text/json", http_msg);
+    restServer.send(success ? 200 : 406, "application/json", http_msg);
 }
 
 void powerAllOff() {
     if (PINS.ramping) {
-        restServer.send(403, "text/json", "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
+        restServer.send(403, "application/json",
+                        "{\"success\": 0, \"reason\": \"ramping ongoing\"}");
         return;
     }
     String group;
@@ -290,7 +294,7 @@ void powerAllOff() {
     // }
     http_msg += "\n}";
 
-    restServer.send(success ? 200 : 406, "text/json", http_msg);
+    restServer.send(success ? 200 : 406, "application/json", http_msg);
 }
 
 void pollMPODChannel() {
@@ -328,5 +332,5 @@ void pollMPODChannel() {
     http_msg += ret;
     http_msg += "}";
 
-    restServer.send(channel ? 200 : 406, "text/json", http_msg);
+    restServer.send(channel ? 200 : 406, "application/json", http_msg);
 }