diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
index ab36b2b..88b1c40 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/Messages.java
@@ -36,6 +36,7 @@
 	public static String QuickSearchDialog_keepOpen_toggle;
 	public static String QuickSearchDialog_caseSensitive_toggle;
 	public static String QuickSearchDialog_title;
+	public static String QuickSearchDialog_listLabel;
 	public static String QuickSearchDialog_caseSensitive_label;
 	public static String QuickSearchDialog_caseInsensitive_label;
 	public static String QuickTextSearch_updateMatchesJob;
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
index 561494c..7d6aa7e 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/QuickSearchDialog.java
@@ -367,6 +367,7 @@
 
 	private IWorkbenchWindow window;
 	private Text searchIn;
+	private Label listLabel;
 
 	/**
 	 * Creates a new instance of the class.
@@ -759,7 +760,7 @@
 		searchIn.setToolTipText(Messages.QuickSearchDialog_InTooltip);
 		GridDataFactory.fillDefaults().grab(true, false).indent(5, 0).applyTo(searchIn);
 
-		final Label listLabel = createLabels(content);
+		listLabel = createLabels(content);
 
 		sashForm = new SashForm(content, SWT.VERTICAL);
 		GridDataFactory.fillDefaults().grab(true, true).applyTo(sashForm);
@@ -1098,6 +1099,8 @@
 		if (list != null && !list.getTable().isDisposed()) {
 			int itemCount = contentProvider.getNumberOfElements();
 			list.setItemCount(itemCount);
+			listLabel.setText(NLS.bind(Messages.QuickSearchDialog_listLabel, itemCount));
+			listLabel.pack();
 			list.refresh(true, false);
 			Button openButton = getButton(OPEN_BUTTON_ID);
 			if (openButton!=null && !openButton.isDisposed()) {
diff --git a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
index 1d9da30..8010e50 100644
--- a/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
+++ b/org.eclipse.text.quicksearch/src/org/eclipse/text/quicksearch/internal/ui/messages.properties
@@ -18,6 +18,7 @@
 QuickSearchDialog_keepOpen_toggle=Keep Open
 QuickSearchDialog_caseSensitive_toggle=Case sensitive
 QuickSearchDialog_title=Quick Search
+QuickSearchDialog_listLabel = &Matching items: {0}
 QuickSearchDialog_caseSensitive_label=Case SENSITIVE &Pattern (? = any character, * = any string)
 QuickSearchDialog_caseInsensitive_label=Case INSENSITIVE &Pattern (? = any character, * = any string)
 QuickTextSearch_updateMatchesJob=Update matches
