diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js
index 62a46733cc4d57bb9713bc27c4f2c2bb809c60e8..79293fe2d4a92f06d60ae88632c7138d064d6a45 100644
--- a/app/assets/javascripts/notes.js
+++ b/app/assets/javascripts/notes.js
@@ -287,6 +287,13 @@ const normalizeNewlines = function(str) {
       }
     };
 
+    Notes.prototype.setupNewNote = function($note) {
+      // Update datetime format on the recent note
+      gl.utils.localTimeAgo($note.find('.js-timeago'), false);
+      this.collapseLongCommitList();
+      this.taskList.init();
+    };
+
     /*
     Render note in main comments area.
 
@@ -312,10 +319,7 @@ const normalizeNewlines = function(str) {
 
         const $newNote = Notes.animateAppendNote(noteEntity.html, $notesList);
 
-        // Update datetime format on the recent note
-        gl.utils.localTimeAgo($newNote.find('.js-timeago'), false);
-        this.collapseLongCommitList();
-        this.taskList.init();
+        this.setupNewNote($newNote);
         this.refresh();
         return this.updateNotesCount(1);
       }
@@ -341,9 +345,7 @@ const normalizeNewlines = function(str) {
         }
         else {
           const $updatedNote = Notes.animateUpdateNote(noteEntity.html, $note);
-
-          // Update datetime format on the recent note
-          gl.utils.localTimeAgo($updatedNote.find('.js-timeago'), false);
+          this.setupNewNote($updatedNote);
         }
       }
     };
@@ -665,10 +667,8 @@ const normalizeNewlines = function(str) {
       if (this.updatedNotesTrackingMap[noteId]) {
         const $newNote = $(this.updatedNotesTrackingMap[noteId].html);
         $note.replaceWith($newNote);
+        this.setupNewNote($newNote);
         this.updatedNotesTrackingMap[noteId] = null;
-
-        // Update datetime format on the recent note
-        gl.utils.localTimeAgo($newNote.find('.js-timeago'), false);
       }
       else {
         $note.find('.js-finish-edit-warning').hide();
@@ -1144,7 +1144,7 @@ const normalizeNewlines = function(str) {
       // There can be CRLF vs LF mismatches if we don't sanitize and compare the same way
       const sanitizedNoteEntityText = normalizeNewlines(noteEntity.note.trim());
       const currentNoteText = normalizeNewlines(
-        $note.find('.original-note-content').text().trim()
+        $note.find('.original-note-content').first().text().trim()
       );
       return sanitizedNoteEntityText !== currentNoteText;
     };
diff --git a/app/views/shared/notes/_note.html.haml b/app/views/shared/notes/_note.html.haml
index 53d0e837aa0d503713c4defde17b03ba1e31802a..a7bf610b9c709e41089766c0b3094a9c7569ccea 100644
--- a/app/views/shared/notes/_note.html.haml
+++ b/app/views/shared/notes/_note.html.haml
@@ -29,8 +29,6 @@
               - if note.system
                 %span.system-note-message
                   = note.redacted_note_html
-                .original-note-content.hidden
-                  = note.note
               %a{ href: "##{dom_id(note)}" }
                 = time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
         - unless note.system?
diff --git a/spec/features/issues/note_polling_spec.rb b/spec/features/issues/note_polling_spec.rb
index da81fa4e367a73ac41eb8ed15ae9dcd437f75be6..80f579065069374fbbc7fcfc4d63cdb379dad8b4 100644
--- a/spec/features/issues/note_polling_spec.rb
+++ b/spec/features/issues/note_polling_spec.rb
@@ -31,12 +31,12 @@ feature 'Issue notes polling', :feature, :js do
 
       it 'has .original-note-content to compare against' do
         expect(page).to have_selector("#note_#{existing_note.id}", text: note_text)
-        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
+        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
 
         update_note(existing_note, updated_text)
 
         expect(page).to have_selector("#note_#{existing_note.id}", text: updated_text)
-        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
+        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
       end
 
       it 'displays the updated content' do
@@ -98,12 +98,28 @@ feature 'Issue notes polling', :feature, :js do
 
       it 'has .original-note-content to compare against' do
         expect(page).to have_selector("#note_#{existing_note.id}", text: note_text)
-        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
+        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
 
         update_note(existing_note, updated_text)
 
         expect(page).to have_selector("#note_#{existing_note.id}", text: updated_text)
-        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
+        expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
+      end
+    end
+
+    context 'system notes' do
+      let(:user) { create(:user) }
+      let(:note_text) { "Some system note" }
+      let!(:system_note) { create(:system_note, noteable: issue, project: project, author: user, note: note_text) }
+
+      before do
+        login_as(user)
+        visit namespace_project_issue_path(project.namespace, project, issue)
+      end
+
+      it 'has .original-note-content to compare against' do
+        expect(page).to have_selector("#note_#{system_note.id}", text: note_text)
+        expect(page).to have_selector("#note_#{system_note.id} .original-note-content", count: 1, visible: false)
       end
     end
   end
diff --git a/spec/javascripts/notes_spec.js b/spec/javascripts/notes_spec.js
index d3494aaa94fa2b190bbd7e6aad53ec46317c1960..025f08ee3323379c1fff484e205ea5e921e304ca 100644
--- a/spec/javascripts/notes_spec.js
+++ b/spec/javascripts/notes_spec.js
@@ -139,6 +139,7 @@ import '~/notes';
         ]);
 
         notes = jasmine.createSpyObj('notes', [
+          'setupNewNote',
           'refresh',
           'collapseLongCommitList',
           'updateNotesCount',