Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 17268)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 17269)
@@ -7,7 +7,7 @@
 import java.awt.Component;
 import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
-import java.awt.event.KeyEvent;
 import java.text.DateFormat;
 import java.util.ArrayList;
@@ -51,6 +51,6 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.OpenBrowser;
+import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.date.DateUtils;
-import org.openstreetmap.josm.tools.Shortcut;
 
 /**
@@ -229,5 +229,5 @@
     }
 
-    private static class NoteRenderer implements ListCellRenderer<Note> {
+    static class NoteRenderer implements ListCellRenderer<Note> {
 
         private final DefaultListCellRenderer defaultListCellRenderer = new DefaultListCellRenderer();
@@ -242,6 +242,6 @@
                 JLabel jlabel = (JLabel) comp;
                 if (fstComment != null) {
-                    String text = note.getFirstComment().getText();
-                    String userName = note.getFirstComment().getUser().getName();
+                    String text = fstComment.getText();
+                    String userName = fstComment.getUser().getName();
                     if (userName == null || userName.isEmpty()) {
                         userName = "<Anonymous>";
@@ -249,5 +249,5 @@
                     String toolTipText = userName + " @ " + dateFormat.format(note.getCreatedAt());
                     jlabel.setToolTipText(toolTipText);
-                    jlabel.setText(note.getId() + ": " +text);
+                    jlabel.setText(note.getId() + ": " +text.replace("\n\n", "\n").replace("\n", "; ").replace(":; ", ": "));
                 } else {
                     jlabel.setToolTipText(null);
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/NotesDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/NotesDialogTest.java	(revision 17269)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/NotesDialogTest.java	(revision 17269)
@@ -0,0 +1,42 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.dialogs;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.Date;
+
+import javax.swing.JLabel;
+import javax.swing.JList;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.notes.Note;
+import org.openstreetmap.josm.data.notes.NoteComment;
+import org.openstreetmap.josm.data.osm.User;
+import org.openstreetmap.josm.gui.dialogs.NotesDialog.NoteRenderer;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link NotesDialog}
+ */
+class NotesDialogTest {
+
+    /**
+     * Setup tests
+     */
+    @RegisterExtension
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules josmTestRules = new JOSMTestRules().preferences();
+
+    @Test
+    void testMultiLineNoteRendering() {
+        Note note = new Note(LatLon.ZERO);
+        note.setCreatedAt(new Date());
+        note.addComment(new NoteComment(new Date(), User.createLocalUser(null), "foo\nbar\n\nbaz:\nfoo", null, false));
+        assertEquals("0: foo; bar; baz: foo",
+                ((JLabel) new NoteRenderer().getListCellRendererComponent(new JList<>(), note, 0, false, false)).getText());
+    }
+}
