diff --git a/oscar/highresolution.cpp b/oscar/highresolution.cpp
index 18c3fcb1..5f6e41e1 100644
--- a/oscar/highresolution.cpp
+++ b/oscar/highresolution.cpp
@@ -44,7 +44,7 @@ namespace HighResolution {
     }
 
     HiResolutionMode setHiResolutionMode(HiResolutionMode value) {
-        QString filename = GetAppData() + HI_RES_FILENAME;
+        QString filename = GetAppData() +  QDir::separator() +  HI_RES_FILENAME;
         if (value == HRM_ENABLED ) {
             writeMode( filename , HRM_ENABLED ,"HiResolutionMode Enabled");
             return HRM_ENABLED;
@@ -55,22 +55,22 @@ namespace HighResolution {
     }
 
     HiResolutionMode  getHiResolutionMode() {
-        QString filename = GetAppData() + HI_RES_FILENAME;
+        QString filename = GetAppData() +  QDir::separator() +  HI_RES_FILENAME;
         int hiResMode= readMode( filename );
         return (hiResMode == HRM_ENABLED ) ? HRM_ENABLED : HRM_DISABLED ;
     }
 
     // this function is used to control the text name of the high resolution preference checkbox.
-    void checkBox(bool set,QCheckBox* button) {
+    bool checkBox(bool set,QCheckBox* button) {
         if (set) {
             hiResolutionNextSessionMode = button->isChecked()? HRM_ENABLED : HRM_DISABLED ;
             setHiResolutionMode(hiResolutionNextSessionMode);
             if ( hiResolutionOperaingMode != hiResolutionNextSessionMode ) {
-                QMessageBox::information(nullptr,
-                    STR_MessageBox_Information,
-                    QObject::tr("High Resolution Mode change will take effect when OSCAR is restarted."));
+                QString msg = QString("%1\n%2").arg(QObject::tr("High Resolution Mode change will take effect when OSCAR is restarted."))
+                    .arg(QObject::tr("Restart Oscar now?") );
+                 return QMessageBox::question(nullptr, STR_MessageBox_Question, msg, QMessageBox::No, QMessageBox::Yes) == QMessageBox::Yes;
             }
-            return;
+            return false;
         }
         QString label;
         if (hiResolutionNextSessionMode == HRM_ENABLED ) {
@@ -89,6 +89,7 @@ namespace HighResolution {
             button->setChecked(false);
         }
         button->setText(label);
+        return false;
     }
 
     // These functions are for main.cpp
diff --git a/oscar/highresolution.h b/oscar/highresolution.h
index 0a96faa4..650178e6 100644
--- a/oscar/highresolution.h
+++ b/oscar/highresolution.h
@@ -19,7 +19,7 @@ namespace HighResolution {
     void display(bool);
     
     // used by preferences
-    void checkBox(bool set,QCheckBox* button);
+    bool checkBox(bool set,QCheckBox* button);
 }
 
 #endif // HIGHRESOLUTION_H
diff --git a/oscar/preferencesdialog.cpp b/oscar/preferencesdialog.cpp
index 12930a47..4be8d269 100644
--- a/oscar/preferencesdialog.cpp
+++ b/oscar/preferencesdialog.cpp
@@ -865,7 +865,7 @@ bool PreferencesDialog::Save()
     bool clicicalModeChanged = profile->cpap->clinicalMode() != ui->clinicalMode->isChecked() ;
     p_profile->cpap->setClinicalMode(ui->clinicalMode->isChecked());
 
-    HighResolution::checkBox(true,ui->highResolution);
+    needs_restart |= HighResolution::checkBox(true,ui->highResolution);
     
     if (ui->alternatingColorsCombo->currentIndex() != AppSetting->alternatingColorsCombo()) {
         AppSetting->setAlternatingColorsCombo(ui->alternatingColorsCombo->currentIndex());