diff --git a/TODO b/TODO
index 9cf498631b54d4d7d758aa43a857d23f48b3c953..9374d6088cd975e72490d6b0e5df584266dd93cf 100644
--- a/TODO
+++ b/TODO
@@ -12,8 +12,10 @@
 ============================================================================
 
 ====== BUGS AND ISSUES ===============================================
-- result tip with mistakes texts may be too long
 
+- played note in single mode wrongly shows enharmonic
+- key signatures chart is wrongly scaled when Y axis is different
+- Y axis in empty chart has to be adjusted to window height (it has fixed size)
 - remove some console debug messages
 - clean tartini unused code
 
@@ -22,11 +24,11 @@ MINOR:
       if it is started from creator - there is highlight of message 
       but when started from 'start' menu - there is not
 - try to avoid many resizeEvent-s of TmultiScore during window size change
-- check is intonation checked properly in exams
+- disable shortcuts (KDE styles) or change text to icon on buttons to select instrument and used string (range settings)
 
 - changing tool bar auto-hiding causes sometimes locked melody menu
 - auto hidden tool bar remains big after decreased window size
-- disable shortcuts (KDE styles) or change text to icon on buttons to select instrument and used string (range settings)
+
 
 - changing to/from grand staff overrides TscoreNote ambitus - there is no problem as long as ambitus is unused
 - selecting read only notes (right and double click) is unused - it is good - but clean a code
@@ -43,6 +45,7 @@ MINOR:
 - average effectiveness line in chart
 - make exam summary pretty
 - certificates would have some additional data about melodies
+- bring back isVoice() audio param - average pitch of all chunks or min duration will depend on it
 
 - divide TexamExecutor class !!!!!
 - rhythms in score
diff --git a/changes b/changes
index ec4071de9007d2d2e9b65bf0608da23b20d54cc4..ba19ee69ab336141b80d7163467e8fd86e4dee8c 100644
--- a/changes
+++ b/changes
@@ -4,6 +4,7 @@
      - unlocked help button(s) to opening related help sites
     BUGS FIXES
      - checking intonation properly respects level accuracy setting
+     - fixed determining mistake types for melodies
 
 1.1.7 rc2
      - improvements/fixes related to low latency and real-time audio
diff --git a/src/exam/texamexecutor.cpp b/src/exam/texamexecutor.cpp
index 87eca831055a3aff8838659de57fb46c7f3e1c39..77fac9d9df43b200f9cdbe8ffbaae679af3923d8 100755
--- a/src/exam/texamexecutor.cpp
+++ b/src/exam/texamexecutor.cpp
@@ -611,18 +611,19 @@ void TexamExecutor::checkAnswer(bool showResults) {
 					}
 					if (goodAllready == curQ->melody()->length()) { // all required notes are correct
 							curQ->setMistake(TQAunit::e_correct); // even if user put them more and effect. is poor
-// 							qDebug() << "Melody is correct";
+							qDebug() << "Melody is correct";
 					} else if (goodAllready + notBadAlready == curQ->melody()->length()) { // add committed mistakes of last attempt
-							curQ->setMistake(curQ->lastAttempt()->summary()); // or 'not bad'
-// 							qDebug() << "Melody is not bad";
+							curQ->setMistake(curQ->lastAttempt()->summary() - (curQ->lastAttempt()->summary() & 64 ? 64 : 0)); // or 'not bad'
+// 							qDebug() << "Melody is not bad" << curQ->mistake();
 					} else if (goodAllready + notBadAlready >= curQ->melody()->length() * 0.7) { // at least 70% notes answered properly
 // 						qDebug() << "Melody has little notes";
 						if (curQ->lastAttempt()->effectiveness() > 50.0) { // and effectiveness is sufficient
+                curQ->setMistake(curQ->lastAttempt()->summary() - (curQ->lastAttempt()->summary() & 64 ? 64 : 0));
 								curQ->setMistake(TQAunit::e_littleNotes); // but less notes than required
 // 								qDebug() << "... and sufficient effectiveness";
 						} else { // or effectiveness is too poor
-								curQ->setMistake(TQAunit::e_wrongNote);
-// 								qDebug() << "... but very poor effectiveness";
+								curQ->setMistake(TQAunit::e_veryPoor);
+// 								qDebug() << "... but very poor effectiveness" << curQ->lastAttempt()->effectiveness();
 						}
 					} else {
 							curQ->setMistake(TQAunit::e_wrongNote);
@@ -803,20 +804,6 @@ void TexamExecutor::correctAnswer() {
     m_lockRightButt = true;
   } else
     correctionFinished();
-
-// 	if (gl->E->autoNextQuest && gl->E->afterMistake != TexamParams::e_stop && !curQ->melody()) {
-// 			m_lockRightButt = true; // to avoid nervous users click mouse during correctViewDuration
-// 			m_askingTimer->start(gl->E->correctPreview);
-//   }
-//   if (curQ->melody()) {
-// 		m_canvas->whatNextTip(false, false);
-//     connect(mW->score, &TmainScore::lockedNoteClicked, this, &TexamExecutor::correctNoteOfMelody);
-//   } else if (!gl->E->autoNextQuest || gl->E->afterMistake == TexamParams::e_stop)
-// 			QTimer::singleShot(2000, this, SLOT(delayerTip())); // 2000 ms - fastest preview time - longer than animation duration
-// 	if (curQ->melody() && (curQ->questionAsNote() || curQ->answerAsNote()))
-// 			m_canvas->melodyCorrectMessage();
-// 	if (!gl->E->autoNextQuest || !gl->E->showCorrected || gl->E->afterMistake == TexamParams::e_stop)
-// 			QTimer::singleShot(2000, m_canvas, SLOT(clearResultTip())); // exam will stop so clear result tip after correction
 }
 
 
@@ -1623,7 +1610,7 @@ void TexamExecutor::correctionFinished() {
   if (m_exam->curQ()->melody() && (m_exam->curQ()->questionAsNote() || m_exam->curQ()->answerAsNote()))
       m_canvas->melodyCorrectMessage();
   if (!gl->E->autoNextQuest || !gl->E->showCorrected || gl->E->afterMistake == TexamParams::e_stop)
-      QTimer::singleShot(2000, m_canvas, SLOT(clearResultTip())); // exam will stop so clear result tip after correction
+      QTimer::singleShot(4000, m_canvas, SLOT(clearResultTip())); // exam will stop so clear result tip after correction
 }
 
 
diff --git a/src/libs/core/graphics/tnotepixmap.cpp b/src/libs/core/graphics/tnotepixmap.cpp
index 4e6c53cbc35e4590f4b9501a184acbdf06e4fe57..1d3b24c3825cf867d08afdbab6c698bd20983b9e 100644
--- a/src/libs/core/graphics/tnotepixmap.cpp
+++ b/src/libs/core/graphics/tnotepixmap.cpp
@@ -226,7 +226,7 @@ QString wasAnswerOKtext(TQAunit* answer, const QColor& textColor, int fontSize)
 							misMes = QApplication::translate("AnswerText", "wrong accidental");
 					if (answer->wrongKey()) {
 							addSpaceToNotEmpty(misMes);
-							misMes += QApplication::translate("AnswerText", "wrong key signature");
+							newLineText(misMes, QApplication::translate("AnswerText", "wrong key signature"));
 					}
 					if (answer->wrongOctave()) {
 							addSpaceToNotEmpty(misMes);