diff --git a/SleepLib/common.cpp b/SleepLib/common.cpp
index 823840e2..f80ee1fc 100644
--- a/SleepLib/common.cpp
+++ b/SleepLib/common.cpp
@@ -23,6 +23,9 @@ qint64 timezoneOffset() {
 
 QString weightString(float kg, UnitSystem us)
 {
+    if (us==US_Undefined)
+        us=PROFILE.general->unitSystem();
+
     if (us==US_Metric) {
         return QString("%1kg").arg(kg,0,'f',2);
     } else if (us==US_Archiac) {
diff --git a/SleepLib/common.h b/SleepLib/common.h
index de261d39..a072de50 100644
--- a/SleepLib/common.h
+++ b/SleepLib/common.h
@@ -9,7 +9,7 @@ enum UnitSystem { US_Undefined, US_Metric, US_Archiac };
 const float ounce_convert=28.3495231; // grams
 const float pound_convert=ounce_convert*16;
 
-QString weightString(float kg, UnitSystem us);
+QString weightString(float kg, UnitSystem us=US_Undefined);
 
 const QString STR_UNIT_CM=QObject::tr("cm");
 const QString STR_UNIT_INCH=QObject::tr("\"");
diff --git a/SleepLib/loader_plugins/prs1_loader.cpp b/SleepLib/loader_plugins/prs1_loader.cpp
index 216bdb0a..dfccb3d4 100644
--- a/SleepLib/loader_plugins/prs1_loader.cpp
+++ b/SleepLib/loader_plugins/prs1_loader.cpp
@@ -482,7 +482,7 @@ bool PRS1Loader::ParseSummary(Machine *mach, qint32 sequence, quint32 timestamp,
     session->settings[CPAP_PresReliefMode]=(int)PM_FullTime; // only has one mode
 
 
-    session->settings[CPAP_PresReliefSet]=(int)(data[offset+0x08] & 3);
+    session->settings[CPAP_PresReliefSet]=(int)(data[offset+0x08] & 7);
     session->settings[PRS1_HumidSetting]=(int)data[offset+0x09]&0x0f;
     session->settings[PRS1_HumidStatus]=(data[offset+0x09]&0x80)==0x80;
     session->settings[PRS1_SysLock]=(data[offset+0x0a]&0x80)==0x80;
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 2af2d641..0dc67057 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -1671,37 +1671,71 @@ void MainWindow::PrintReport(gGraphView *gv,QString name, QDate date)
             } else if (cpap->machine->GetClass()==STR_MACH_Intellipap) {
                 stats+=tr("NRI=%1 LKI=%2 EPI=%3").arg(nri,0,'f',2).arg(lki,0,'f',2).arg(exp,0,'f',2);
             }
-            bounds=painter.boundingRect(QRectF(0,top+ttop,virt_width,0),stats,QTextOption(Qt::AlignCenter));
-            painter.drawText(bounds,stats,QTextOption(Qt::AlignCenter));
+            bounds=painter.boundingRect(QRectF(0,top+ttop,virt_width,0),stats,QTextOption(Qt::AlignHCenter));
+            painter.drawText(bounds,stats,QTextOption(Qt::AlignHCenter));
             ttop+=bounds.height();
 
+            if (journal) {
+                stats="";
+                if (journal->settings.contains(Journal_Weight))
+                    stats+=tr("Weight %1 ").arg(weightString(journal->settings[Journal_Weight].toDouble()));
+                if (journal->settings.contains(Journal_BMI))
+                    stats+=tr("BMI %1 ").arg(journal->settings[Journal_BMI].toDouble(),0,'f',2);
+                if (journal->settings.contains(Journal_ZombieMeter))
+                    stats+=tr("Zombie %1/10 ").arg(journal->settings[Journal_ZombieMeter].toDouble(),0,'f',0);
+
+                if (!stats.isEmpty()) {
+                    bounds=painter.boundingRect(QRectF(0,top+ttop,virt_width,0),stats,QTextOption(Qt::AlignHCenter));
+
+                    painter.drawText(bounds,stats,QTextOption(Qt::AlignHCenter));
+                    ttop+=bounds.height();
+                }
+                ttop+=normal_height;
+                if (journal->settings.contains(Journal_Notes)) {
+                    QTextDocument doc;
+                    doc.setHtml(journal->settings[Journal_Notes].toString());
+                    stats=doc.toPlainText();
+                    //doc.drawContents(&painter);
+
+                    bounds=painter.boundingRect(QRectF(0,top+ttop,virt_width,0),stats,QTextOption(Qt::AlignHCenter));
+                    painter.drawText(bounds,stats,QTextOption(Qt::AlignHCenter));
+                    bounds.setLeft(virt_width/4);
+                    bounds.setRight(virt_width-(virt_width/4));
+
+                    QPen pen(Qt::black);
+                    pen.setWidth(4);
+                    painter.setPen(pen);
+                    painter.drawRect(bounds);
+                    ttop+=bounds.height()+normal_height;
+                }
+            }
+
+
             if (ttop>maxy) maxy=ttop;
         } else {
             bounds=painter.boundingRect(QRectF(0,top+maxy,virt_width,0),cpapinfo,QTextOption(Qt::AlignCenter));
             painter.drawText(bounds,cpapinfo,QTextOption(Qt::AlignCenter));
             if (maxy+bounds.height()>maxy) maxy=maxy+bounds.height();
         }
-
-        graph_slots=2;
     } else if (name==STR_TR_Overview) {
         QDateTime first=QDateTime::fromTime_t((*gv)[0]->min_x/1000L);
         QDateTime last=QDateTime::fromTime_t((*gv)[0]->max_x/1000L);
         QString ovinfo=tr("Reporting from %1 to %2").arg(first.date().toString(Qt::SystemLocaleShortDate)).arg(last.date().toString(Qt::SystemLocaleShortDate));
-        QRectF bounds=painter.boundingRect(QRectF(0,top,virt_width,0),ovinfo,QTextOption(Qt::AlignCenter));
-        painter.drawText(bounds,ovinfo,QTextOption(Qt::AlignCenter));
+        QRectF bounds=painter.boundingRect(QRectF(0,top,virt_width,0),ovinfo,QTextOption(Qt::AlignHCenter));
+        painter.drawText(bounds,ovinfo,QTextOption(Qt::AlignHCenter));
 
         if (bounds.height()>maxy) maxy=bounds.height();
-        graph_slots=1;
     } else if (name==STR_TR_Oximetry) {
         QString ovinfo=tr("Reporting data goes here");
-        QRectF bounds=painter.boundingRect(QRectF(0,top,virt_width,0),ovinfo,QTextOption(Qt::AlignCenter));
-        painter.drawText(bounds,ovinfo,QTextOption(Qt::AlignCenter));
+        QRectF bounds=painter.boundingRect(QRectF(0,top,virt_width,0),ovinfo,QTextOption(Qt::AlignHCenter));
+        painter.drawText(bounds,ovinfo,QTextOption(Qt::AlignHCenter));
 
         if (bounds.height()>maxy) maxy=bounds.height();
-        graph_slots=1;
     }
     top+=maxy;
 
+    graph_slots=graphs_per_page-((virt_height-top)/(full_graph_height+normal_height));
+
     bool first=true;
     QStringList labels;
     QVector<gGraph *> graphs;
@@ -1862,9 +1896,10 @@ void MainWindow::PrintReport(gGraphView *gv,QString name, QDate date)
         if (!label.isEmpty()) {
             //label+=":";
             top+=normal_height/3;
-            QRectF pagebnds=QRectF(0,top,virt_width,normal_height);
-            painter.drawText(pagebnds,label,QTextOption(Qt::AlignHCenter | Qt::AlignTop));
-            top+=normal_height;
+            QRectF bounds=painter.boundingRect(QRectF(0,top,virt_width,0),label,QTextOption(Qt::AlignHCenter));
+            //QRectF pagebnds=QRectF(0,top,virt_width,normal_height);
+            painter.drawText(bounds,label,QTextOption(Qt::AlignHCenter));
+            top+=bounds.height();
         } else top+=normal_height/2;
 
         PROFILE.appearance->setAntiAliasing(force_antialiasing);