diff --git a/Htmldocs/release_notes.html b/Htmldocs/release_notes.html
index 1fd701b5..fec4cf0e 100644
--- a/Htmldocs/release_notes.html
+++ b/Htmldocs/release_notes.html
@@ -11,6 +11,19 @@
     <b>For other languages, go to:</b>
     <br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes>http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes</a></p>
     <p>
+    <b>Changes and fixes in OSCAR v1.2.0-beta-XXX</b>
+    <br>Portions of OSCAR are © 2019-2020 by
+    <i>The OSCAR Team</i></p>
+    <ul>
+      <li>[new] Additional Philips Respironics devices tested and fully supported:
+        <ul>
+          <li>REMstar Pro (System One) (450P V1)</li>
+          <li>Dorma 500 Auto (System One 60 Series) (501V)</li>
+        </ul>
+      </li>
+      <li>[fix] Improve support of rare Philips Respironics 1030X events and update warnings.</li>
+    </ul></p>
+    <p>
     <b>Changes and fixes in OSCAR v1.2.0-beta-2</b>
     <br>Portions of OSCAR are © 2019-2020 by
     <i>The OSCAR Team</i></p>
diff --git a/oscar/SleepLib/loader_plugins/prs1_loader.cpp b/oscar/SleepLib/loader_plugins/prs1_loader.cpp
index 080ea6c8..b9b59017 100644
--- a/oscar/SleepLib/loader_plugins/prs1_loader.cpp
+++ b/oscar/SleepLib/loader_plugins/prs1_loader.cpp
@@ -3331,7 +3331,10 @@ bool PRS1DataChunk::ParseEventsF3V6(void)
                 // no additional data
                 this->AddEvent(new PRS1ApneaAlarmEvent(t, 0));
                 break;
-            // case 0x0d?
+            case 0x0d:  // Low MV Alarm
+                // no additional data
+                this->AddEvent(new PRS1LowMinuteVentilationAlarmEvent(t, 0));
+                break;
             // case 0x0e?
             // case 0x0f?
             default:
@@ -5963,7 +5966,7 @@ bool PRS1DataChunk::ParseSummaryF3V6(void)
                 }
                 CHECK_VALUE(data[pos+3], 1);
                 CHECK_VALUE(data[pos+4], 1);
-                CHECK_VALUE(data[pos+5], 0);
+                CHECK_VALUES(data[pos+5], 0, 1);  // 1 = Low Minute Ventilation Alarm set to 1
                 CHECK_VALUE(data[pos+6], 2);
                 CHECK_VALUE(data[pos+7], 1);
                 CHECK_VALUE(data[pos+8], 0);  // 1 = patient disconnect alarm of 15 sec on F5V3, not sure where time is encoded
@@ -7139,7 +7142,7 @@ void PRS1DataChunk::ParseHumidifierSettingV3(unsigned char byte1, unsigned char
         if (tubepresent) {
             // All tube temperature and humidity levels seen.
         } else if (humidadaptive) {
-            if (humidlevel == 1) UNEXPECTED_VALUE(humidlevel, "[0,2-5]");
+            // All humidity levels seen.
         } else if (humidfixed) {
             if (humidlevel == 0) UNEXPECTED_VALUE(humidlevel, "1-5");
         }
@@ -8341,8 +8344,12 @@ bool PRS1Import::ImportEvents()
         // First make a list of the mask-on slices that will be imported (nonzero duration)
         QVector<SessionSlice> maskOn;
         for (auto & slice : m_slices) {
-            if (slice.status == MaskOn && slice.end > slice.start) {
-                maskOn.append(slice);
+            if (slice.status == MaskOn) {
+                if (slice.end > slice.start) {
+                    maskOn.append(slice);
+                } else {
+                    qWarning() << this->sessionid << "Dropping empty mask-on slice:" << ts(slice.start);
+                }
             }
         }
         // Then go through each required channel and make sure each eventlist is within