diff --git a/org.eclipse.search/new search/org/eclipse/search/ui/text/AbstractTextSearchViewPage.java b/org.eclipse.search/new search/org/eclipse/search/ui/text/AbstractTextSearchViewPage.java
index ac22581..81434ec 100644
--- a/org.eclipse.search/new search/org/eclipse/search/ui/text/AbstractTextSearchViewPage.java
+++ b/org.eclipse.search/new search/org/eclipse/search/ui/text/AbstractTextSearchViewPage.java
@@ -426,8 +426,8 @@
 	}
 
 	private Control createBusyControl() {
-		Table busyLabel = new Table(fPagebook, SWT.NULL);
-		TableItem item = new TableItem(busyLabel, SWT.NULL);
+		Table busyLabel = new Table(fPagebook, SWT.NONE);
+		TableItem item = new TableItem(busyLabel, SWT.NONE);
 		item.setText(SearchMessages.getString("AbstractTextSearchViewPage.searching.label")); //$NON-NLS-1$
 		busyLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		return busyLabel;
@@ -628,7 +628,7 @@
 	 * @return returns a newly created <code>TableViewer</code>
 	 */
 	protected TableViewer createTableViewer(Composite parent) {
-		return new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL) {
+		return new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION) {
 			protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
 				getTable().setRedraw(false);
 				try {
diff --git a/org.eclipse.search/new search/org/eclipse/search2/internal/ui/ListDialog.java b/org.eclipse.search/new search/org/eclipse/search2/internal/ui/ListDialog.java
index c5f0b43..2dc9b08 100644
--- a/org.eclipse.search/new search/org/eclipse/search2/internal/ui/ListDialog.java
+++ b/org.eclipse.search/new search/org/eclipse/search2/internal/ui/ListDialog.java
@@ -77,7 +77,7 @@
 	protected Control createDialogArea(Composite container) {
 		Composite parent= (Composite) super.createDialogArea(container);
 		createMessageArea(parent);
-		fViewer= new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		fViewer= new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
 		fViewer.setContentProvider(fContentProvider);
 
 		final Table table= fViewer.getTable();
