Index: src/mainwindow.cpp
===================================================================
--- src/mainwindow.cpp	(revision 8f2427aaf081b56f4fecf0f03e485e768d5c0fcf)
+++ src/mainwindow.cpp	(revision 27b1dca32b10a61d9fc8e27073abe3cfc059bc3b)
@@ -545,11 +545,7 @@
 QString about;
     about += QString("%1: <b>%2</b><br>").arg(tr("Target OS (ARCH)"), PLATFROM);
-#ifndef STATIC_BUILD
-    about += QString("%1 (%2):<br>").arg(tr("Qt library"), tr("shared"));
+    about += QString("%1:<br>").arg(tr("Qt library"));
     about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Build time"), QT_VERSION_STR);
     about += QString("&nbsp;&nbsp;&nbsp;&nbsp;%1: <b>%2</b><br>").arg(tr("Runtime"), qVersion());
-#else
-    about += QString("%1: <b>%2</b> (%3)<br>").arg(tr("Qt library"), QT_VERSION_STR, tr("static"));
-#endif // STATIC_BUILD
     about.append(QString("%1: <b>%2x%3</b><br>").arg("Logical DPI").arg(logicalDpiX()).arg(logicalDpiY()));
     about += tr("Buid <b>%1</b>, built on <b>%2</b> at <b>%3</b> with <b>%4</b> compiler.").arg(BUILD_NUMBER).arg(__DATE__).arg(__TIME__).arg(COMPILER) + "<br>";
@@ -742,5 +738,5 @@
 QPushButton *cancel = new QPushButton(&pd);
     cancel->setIcon(GET_ICON("dialog-cancel"));
-    cancel->setText(QCoreApplication::translate("QProgressDialog", "Cancel", "No need to translate this. This translation will be taken from Qt translation files."));
+    cancel->setText(QCoreApplication::translate("QDialogButtonBox", "Cancel", "No need to translate this. This translation will be taken from Qt translation files."));
     pd.setCancelButton(cancel);
     pd.setMaximum(n);
@@ -838,8 +834,13 @@
         pic.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
 QFont font = qvariant_cast<QFont>(settings->value("Output/Font", QFont(DEF_FONT_FACE)));
-        font.setStyleHint(QFont::Monospace);
+        font.setStyleHint(QFont::TypeWriter);
         // Font size in pixels = graph node radius / 2.75.
         // See MainWindow::drawNode() for graph node radius calcualtion description.
+#ifndef Q_WS_S60
         font.setPixelSize(logicalDpiX() * (settings->value("Output/GraphWidth", DEF_GRAPH_WIDTH).toReal() / CM_IN_INCH) / 4.5 / 2.75);
+#else
+        // Also, see again MainWindow::drawNode() for why is additional 1.3 divider added in Symbian.
+        font.setPixelSize(logicalDpiX() * (settings->value("Output/GraphWidth", DEF_GRAPH_WIDTH).toReal() / CM_IN_INCH) / 4.5 / 2.75 / 1.3);
+#endif
         if (settings->value("Output/HQGraph", DEF_HQ_GRAPH).toBool()) {
             font.setWeight(QFont::DemiBold);
@@ -1474,5 +1475,9 @@
     if (!isWindowModified())
         return true;
-int res = QMessageBox::warning(this, tr("Unsaved Changes"), tr("Would you like to save changes in the current task?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
+#ifdef Q_WS_S60
+    int res = QSMessageBox(this).exec();
+#else
+    int res = QMessageBox::warning(this, tr("Unsaved Changes"), tr("Would you like to save changes in the current task?"), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
+#endif
     if (res == QMessageBox::Save)
         return actionFileSaveTriggered();
@@ -1664,5 +1669,5 @@
     actionHelpReportBug->setIcon(GET_ICON("tools-report-bug"));
     actionHelpAbout->setIcon(GET_ICON("help-about"));
-    actionHelpAboutQt->setIcon(QIcon(":/images/icons/"ICON_SIZE"/qtlogo."ICON_FORMAT));
+    actionHelpAboutQt->setIcon(QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"));
 #endif
     // Buttons
@@ -1841,2 +1846,32 @@
     QDesktopServices::openUrl(QUrl("http://tspsg.info/goto/bugtracker"));
 }
+
+#ifdef Q_WS_S60
+QSMessageBox::QSMessageBox(QWidget *parent)
+    : QMessageBox(parent)
+{
+    setIcon(QMessageBox::Warning);
+    setWindowTitle(QApplication::translate("MainWindow", "Unsaved Changes"));
+    setText(QApplication::translate("MainWindow", "Would you like to save changes in the current task?"));
+    setStandardButtons(QMessageBox::Save);
+
+    QMenu *m = new QMenu(this);
+    m->addAction(QApplication::translate("QDialogButtonBox", "Discard", "No need to translate this. This translation will be taken from Qt translation files."),
+                 this, SLOT(discard()));
+    m->addAction(QApplication::translate("QDialogButtonBox", "Cancel", "No need to translate this. This translation will be taken from Qt translation files."),
+                 this, SLOT(cancel()));
+
+    QAction *o = new QAction(QApplication::translate("QMenuBar", "Actions", "No need to translate this. This translation will be taken from Qt translation files."), this);
+    o->setSoftKeyRole(QAction::NegativeSoftKey);
+    o->setMenu(m);
+    addAction(o);
+}
+
+void QSMessageBox::cancel(){
+    done(QMessageBox::Cancel);
+}
+
+void QSMessageBox::discard() {
+    done(QMessageBox::Discard);
+}
+#endif // Q_WS_S60
Index: src/mainwindow.h
===================================================================
--- src/mainwindow.h	(revision 8f2427aaf081b56f4fecf0f03e485e768d5c0fcf)
+++ src/mainwindow.h	(revision 27b1dca32b10a61d9fc8e27073abe3cfc059bc3b)
@@ -161,3 +161,15 @@
 };
 
+#ifdef Q_WS_S60
+// A quickly hacked QMessageBox for Symbian that supports three buttons.
+class QSMessageBox: public QMessageBox {
+    Q_OBJECT
+private slots:
+    void cancel();
+    void discard();
+public:
+    QSMessageBox(QWidget *parent = 0);
+};
+#endif // Q_WS_S60
+
 #endif // MAINWINDOW_H
