diff --git a/src/libs/core/score/tscoreobject.h b/src/libs/core/score/tscoreobject.h
index ccf9cadd0f7dd0cdebdaa2eabcf346a6f123c382..1160f8a48105a050c149b97e734f7d33267884aa 100644
--- a/src/libs/core/score/tscoreobject.h
+++ b/src/libs/core/score/tscoreobject.h
@@ -325,6 +325,12 @@ public:
 
   Q_INVOKABLE void clearScore();
 
+      /**
+       * By keeping those objects available we are reducing QML components creation time when called from C++
+       */
+  QQmlComponent* component() { return m_qmlComponent; }
+  QQmlEngine* qmlEngine() { return m_qmlEngine; }
+
 signals:
   void meterChanged();
 
@@ -385,12 +391,6 @@ signals:
   void bgColorChanged();
 
 protected:
-      /**
-       * By keeping those objects available we are reducing QML components creation time when called from C++
-       */
-  QQmlComponent* component() { return m_qmlComponent; }
-  QQmlEngine* qmlEngine() { return m_qmlEngine; }
-
   void addStaff(TstaffObject* st);
 
   TclefOffset clefOffset() const { return m_clefOffset; }
diff --git a/src/main/tmainscoreobject.cpp b/src/main/tmainscoreobject.cpp
index bf9c4fc8e47e6cd367617e82483e76b3e862990a..c4a6c77104f94b04a134c2fbdabcae26b13d5168 100644
--- a/src/main/tmainscoreobject.cpp
+++ b/src/main/tmainscoreobject.cpp
@@ -28,6 +28,9 @@
 
 #include <QtGui/qguiapplication.h>
 #include <QtGui/qpalette.h>
+#include <QtQml/qqmlengine.h>
+#include <QtQml/qqmlcomponent.h>
+#include <QtQuick/qquickitem.h>
 #include <QtCore/qdebug.h>
 
 
@@ -48,7 +51,7 @@ TmainScoreObject::TmainScoreObject(QObject* parent) :
   m_showNamesAct = new Taction(tr("Show note names"), QString(), this);
   m_showNamesAct->setCheckable(true);
   m_showNamesAct->setChecked(GLOB->namesOnScore());
-  
+
   m_extraAccidsAct = new Taction(tr("Additional accidentals"), QString(), this);
   m_extraAccidsAct->setCheckable(true);
 //   m_showNamesAct->setChecked(GLOB->????);
@@ -65,6 +68,8 @@ TmainScoreObject::TmainScoreObject(QObject* parent) :
   m_saveXmlAct = new Taction(qTR("QShortcut", "Save"), QStringLiteral("save"), this);
   connect(m_saveXmlAct, &Taction::triggered, this, &TmainScoreObject::saveXmlActSlot);
 
+  connect(qApp, &QGuiApplication::paletteChanged, this, &TmainScoreObject::paletteSlot);
+
   isExamChangedSlot();
 }
 
@@ -76,44 +81,46 @@ TmainScoreObject::~TmainScoreObject()
 
 
 void TmainScoreObject::setScoreObject(TscoreObject* scoreObj) {
-  if (m_scoreObject) {
+  if (m_scoreObj) {
     qDebug() << "[TmainScoreObject] score object was already set. FIX IT!";
     return;
   }
-  m_scoreObject = scoreObj;
-  connect(m_scoreObject, &TscoreObject::clicked, this, &TmainScoreObject::clicked);
-  connect(m_showNamesAct, &Taction::triggered, [=]{ m_scoreObject->setShowNoteNames(m_showNamesAct->checked()); });
+  m_scoreObj = scoreObj;
+  connect(m_scoreObj, &TscoreObject::clicked, this, &TmainScoreObject::clicked);
+  connect(m_showNamesAct, &Taction::triggered, [=]{ m_scoreObj->setShowNoteNames(m_showNamesAct->checked()); });
 //   connect(m_extraAccidsAct);
-  connect(m_deleteLastAct, &Taction::triggered, [=]{ m_scoreObject->deleteLastNote(); });
-  connect(m_clearScoreAct, &Taction::triggered, [=]{ m_scoreObject->clearScore(); });
+  connect(m_deleteLastAct, &Taction::triggered, [=]{ m_scoreObj->deleteLastNote(); });
+  connect(m_clearScoreAct, &Taction::triggered, [=]{ m_scoreObj->clearScore(); });
   connect(m_playAct, &Taction::triggered, SOUND, &Tsound::playScore);
-  connect(m_recModeAct, &Taction::triggered, [=]{ m_scoreObject->setRecordMode(!m_scoreObject->recordMode()); });
-  connect(m_zoomOutAct, &Taction::triggered, [=]{ m_scoreObject->setScaleFactor(qMax(0.4, m_scoreObject->scaleFactor() - 0.2)); });
-  connect(m_zoomInAct, &Taction::triggered, [=]{ m_scoreObject->setScaleFactor(qMin(m_scoreObject->scaleFactor() + 0.2, 1.4)); });
+  connect(m_recModeAct, &Taction::triggered, [=]{ m_scoreObj->setRecordMode(!m_scoreObj->recordMode()); });
+  connect(m_zoomOutAct, &Taction::triggered, [=]{ m_scoreObj->setScaleFactor(qMax(0.4, m_scoreObj->scaleFactor() - 0.2)); });
+  connect(m_zoomInAct, &Taction::triggered, [=]{ m_scoreObj->setScaleFactor(qMin(m_scoreObj->scaleFactor() + 0.2, 1.4)); });
   connect(GLOB, &Tglobals::isExamChanged, this, &TmainScoreObject::isExamChangedSlot);
 }
 
 
-void TmainScoreObject::setReadOnly(bool ro) { m_scoreObject->setReadOnly(ro); }
+void TmainScoreObject::setReadOnly(bool ro) { m_scoreObj->setReadOnly(ro); }
 
-void TmainScoreObject::clearScore() { m_scoreObject->clearScore(); }
+void TmainScoreObject::clearScore() { m_scoreObj->clearScore(); }
 
 
 void TmainScoreObject::askQuestion(Tmelody* mel) {
-  m_scoreObject->setBgColor(Tcolor::merge(Tcolor::alpha(GLOB->EquestionColor, 20), qApp->palette().window().color()));
-  m_scoreObject->setMelody(mel);
-  m_scoreObject->setReadOnly(true);
+  m_scoreObj->setBgColor(Tcolor::merge(Tcolor::alpha(GLOB->EquestionColor, 20), qApp->palette().base().color()));
+  m_scoreObj->setMelody(mel);
+  m_scoreObj->setReadOnly(true);
+  m_questionMark->setVisible(true);
 }
 
 
 void TmainScoreObject::askQuestion(const Tnote& note, char realStr) {
-  m_scoreObject->setBgColor(Tcolor::merge(Tcolor::alpha(GLOB->EquestionColor, 20), qApp->palette().window().color()));
-  m_scoreObject->setNote(m_scoreObject->note(0), note);
+  m_scoreObj->setBgColor(Tcolor::merge(Tcolor::alpha(GLOB->EquestionColor, 20), qApp->palette().base().color()));
+  m_scoreObj->setNote(m_scoreObj->note(0), note);
+  m_questionMark->setVisible(true);
 }
 
 
 void TmainScoreObject::askQuestion(const Tnote& note, const TkeySignature& key, char realStr) {
-  m_scoreObject->setKeySignature(static_cast<int>(key.value()));
+  m_scoreObj->setKeySignature(static_cast<int>(key.value()));
   askQuestion(note, realStr);
 }
 
@@ -124,24 +131,45 @@ void TmainScoreObject::askQuestion(const Tnote& note, const TkeySignature& key,
 
 void TmainScoreObject::openXmlActSlot() {
   SOUND->stopListen();
-  m_scoreObject->openMusicXml(NOO->getXmlToOpen());
+  m_scoreObj->openMusicXml(NOO->getXmlToOpen());
   SOUND->startListen();
 }
 
 
 void TmainScoreObject::saveXmlActSlot() {
   SOUND->stopListen();
-  m_scoreObject->saveMusicXml(NOO->getXmlToSave());
+  m_scoreObj->saveMusicXml(NOO->getXmlToSave());
   SOUND->startListen();
 }
 
 
 void TmainScoreObject::isExamChangedSlot() {
   m_scoreActions.clear();
-  if (GLOB->isExam())
-    m_scoreActions << m_zoomOutAct << m_zoomInAct << m_deleteLastAct << m_clearScoreAct;
-  else
-    m_scoreActions << m_playAct << m_recModeAct << m_openXmlAct << m_saveXmlAct << m_showNamesAct << m_extraAccidsAct
-                   << m_zoomOutAct << m_zoomInAct << m_deleteLastAct << m_clearScoreAct;
+  if (GLOB->isExam()) {
+      m_scoreActions << m_zoomOutAct << m_zoomInAct << m_deleteLastAct << m_clearScoreAct;
+      if (!m_questionMark) {
+        m_scoreObj->component()->setData("import QtQuick 2.9; Text { anchors.centerIn: parent ? parent : undefined; scale: parent ? parent.height / height : 1; text: \"?\"; font { family: \"Nootka\"; pixelSize: 20 }}",
+                     QUrl());
+        m_questionMark = qobject_cast<QQuickItem*>(m_scoreObj->component()->create());
+        if (m_questionMark) {
+          m_questionMark->setParentItem(qvariant_cast<QQuickItem*>(qobject_cast<QQuickItem*>(m_scoreObj->parent())->property("bgRect")));
+          m_questionMark->setVisible(false);
+          paletteSlot();
+        }
+      }
+  } else {
+      m_scoreActions << m_playAct << m_recModeAct << m_openXmlAct << m_saveXmlAct << m_showNamesAct << m_extraAccidsAct
+                    << m_zoomOutAct << m_zoomInAct << m_deleteLastAct << m_clearScoreAct;
+      if (m_questionMark) {
+        delete m_questionMark;
+        m_questionMark = nullptr;
+      }
+  }
   emit scoreActionsChanged();
 }
+
+
+void TmainScoreObject::paletteSlot() {
+  if (m_questionMark)
+    m_questionMark->setProperty("color", Tcolor::merge(NOO->alpha(GLOB->wrongColor(), 40), qApp->palette().base().color()));
+}
diff --git a/src/main/tmainscoreobject.h b/src/main/tmainscoreobject.h
index a7af0f769dc9cb231c97f274e66d10f20dbe4b63..e38e9ea727366ba80e21b1cf8892fa1ee113ac94 100644
--- a/src/main/tmainscoreobject.h
+++ b/src/main/tmainscoreobject.h
@@ -28,6 +28,7 @@ class TscoreObject;
 class Tnote;
 class TkeySignature;
 class Tmelody;
+class QQuickItem;
 
 
 #define MAIN_SCORE TmainScoreObject::instance()
@@ -64,7 +65,7 @@ public:
 
   static TmainScoreObject* instance() { return m_instance; }
 
-  TscoreObject* scoreObject() { return m_scoreObject; }
+  TscoreObject* scoreObject() { return m_scoreObj; }
   void setScoreObject(TscoreObject* scoreObj);
 
   Taction* playAct() { return m_playAct; }
@@ -98,9 +99,10 @@ protected:
   void openXmlActSlot();
   void saveXmlActSlot();
   void isExamChangedSlot();
+  void paletteSlot();
 
 private:
-  TscoreObject              *m_scoreObject = nullptr;
+  TscoreObject              *m_scoreObj = nullptr;
   Taction                   *m_playAct, *m_recModeAct;
   Taction                   *m_showNamesAct, *m_extraAccidsAct;
   Taction                   *m_zoomOutAct, *m_zoomInAct;
@@ -108,6 +110,8 @@ private:
   Taction                   *m_openXmlAct, *m_saveXmlAct;
   QList<QObject*>            m_scoreActions;
 
+  QQuickItem                *m_questionMark = nullptr;
+
   static TmainScoreObject   *m_instance;
 
 };
diff --git a/src/qml/MainScore.qml b/src/qml/MainScore.qml
index 455850d5c7ac881b9e9fd3e28a916d24114e7e73..b492f0f5fa70f035ea7ac1cdaecad120dee7c5e1 100644
--- a/src/qml/MainScore.qml
+++ b/src/qml/MainScore.qml
@@ -41,15 +41,15 @@ Score {
   scoreObj.nameColor: GLOB.nameColor
   scoreObj.nameStyle: GLOB.noteNameStyle
   scoreObj.enableDoubleAccidentals: GLOB.enableDoubleAccids
-  scoreObj.bgColor: Noo.alpha(activPal.base, 230)
+  scoreObj.bgColor: activPal.base
 
   TmainScoreObject {
     id: mainObj
     scoreObject: scoreObj
-    deleteLastAct.shortcut: Shortcut { sequence: "Del"; onActivated: deleteLastAct.triggered(); enabled: !GLOB.singleNoteMode }
-    clearScoreAct.shortcut: Shortcut { sequence: "Shift+Del"; onActivated: clearScoreAct.triggered(); enabled: !GLOB.singleNoteMode }
-    openXmlAct.shortcut: Shortcut { sequence: StandardKey.Open; onActivated: openXmlAct.triggered(); enabled: !GLOB.singleNoteMode }
-    saveXmlAct.shortcut: Shortcut { sequence: StandardKey.Save; onActivated: saveXmlAct.triggered(); enabled: !GLOB.singleNoteMode }
+    deleteLastAct.shortcut: Shortcut { sequence: "Del"; onActivated: deleteLastAct.triggered(); enabled: !GLOB.singleNoteMode && !readOnly }
+    clearScoreAct.shortcut: Shortcut { sequence: "Shift+Del"; onActivated: clearScoreAct.triggered(); enabled: !GLOB.singleNoteMode && !readOnly }
+    openXmlAct.shortcut: Shortcut { sequence: StandardKey.Open; onActivated: openXmlAct.triggered(); enabled: !GLOB.singleNoteMode && !GLOB.isExam }
+    saveXmlAct.shortcut: Shortcut { sequence: StandardKey.Save; onActivated: saveXmlAct.triggered(); enabled: !GLOB.singleNoteMode && !GLOB.isExam }
     zoomOutAct.shortcut: Shortcut { sequence: StandardKey.ZoomOut; onActivated: zoomOutAct.triggered(); enabled: !GLOB.singleNoteMode }
     zoomInAct.shortcut: Shortcut { sequence: StandardKey.ZoomIn; onActivated: zoomInAct.triggered(); enabled: !GLOB.singleNoteMode }
     recModeAct.text: recordMode ? qsTr("Note by note") : qsTr("Edit")
@@ -169,11 +169,12 @@ Score {
     }
   }
   Keys.onSpacePressed: {
-    enabled: !GLOB.singleNoteMode
-    if (event.modifiers & Qt.ControlModifier)
-      recModeAct.triggered()
-    else
-      playAct.triggered()
+    if (!GLOB.singleNoteMode && !GLOB.isExam) {
+      if (event.modifiers & Qt.ControlModifier)
+        recModeAct.triggered()
+      else
+        playAct.triggered()
+    }
   }
 
 }
diff --git a/src/qml/score/Score.qml b/src/qml/score/Score.qml
index ca9d705722968791044704c2a23904e03b1db3e5..c974b045a15435f373e670bb74641acb219ddca5 100644
--- a/src/qml/score/Score.qml
+++ b/src/qml/score/Score.qml
@@ -29,6 +29,7 @@ Flickable {
   property alias readOnly: scoreObj.readOnly
   property alias singleNote: scoreObj.singleNote
   property alias recordMode: scoreObj.recordMode
+  property alias bgRect: bgRect
 
   // private
   property var staves: [ staff0 ]
@@ -87,7 +88,7 @@ Flickable {
     parent: score
     z: -1
     width: score.width; height: score.height
-    color: scoreObj.bgColor
+    color: Noo.alpha(scoreObj.bgColor, 230)
     border { width: recordMode ? 2 : 0; color: "red" }
   }