Fixes from Ryan
diff --git a/org.eclipse.ui.externaltools/Ant Builder/org/eclipse/ui/externaltools/internal/ui/ant/NullBuildLogger.java b/org.eclipse.ui.externaltools/Ant Builder/org/eclipse/ui/externaltools/internal/ui/ant/NullBuildLogger.java
new file mode 100644
index 0000000..1cc7f3d
--- /dev/null
+++ b/org.eclipse.ui.externaltools/Ant Builder/org/eclipse/ui/externaltools/internal/ui/ant/NullBuildLogger.java
@@ -0,0 +1,85 @@
+package org.eclipse.ui.externaltools.internal.ui.ant;
+
+import java.io.PrintStream;
+
+import org.apache.tools.ant.*;
+
+/**********************************************************************
+Copyright (c) 2002 IBM Corp. and others.
+All rights reserved.   This program and the accompanying materials
+are made available under the terms of the Common Public License v0.5
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/cpl-v05.html

+Contributors:
+**********************************************************************/
+public class NullBuildLogger implements BuildLogger {
+
+	/**
+	 * @see org.apache.tools.ant.BuildLogger#setMessageOutputLevel(int)
+	 */
+	public void setMessageOutputLevel(int level) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildLogger#setOutputPrintStream(PrintStream)
+	 */
+	public void setOutputPrintStream(PrintStream output) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildLogger#setEmacsMode(boolean)
+	 */
+	public void setEmacsMode(boolean emacsMode) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildLogger#setErrorPrintStream(PrintStream)
+	 */
+	public void setErrorPrintStream(PrintStream err) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#buildStarted(BuildEvent)
+	 */
+	public void buildStarted(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#buildFinished(BuildEvent)
+	 */
+	public void buildFinished(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#targetStarted(BuildEvent)
+	 */
+	public void targetStarted(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#targetFinished(BuildEvent)
+	 */
+	public void targetFinished(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#taskStarted(BuildEvent)
+	 */
+	public void taskStarted(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#taskFinished(BuildEvent)
+	 */
+	public void taskFinished(BuildEvent event) {
+	}
+
+	/**
+	 * @see org.apache.tools.ant.BuildListener#messageLogged(BuildEvent)
+	 */
+	public void messageLogged(BuildEvent event) {
+	}
+
+}
+
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntFileRunner.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntFileRunner.java
index 204e141..750db6a 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntFileRunner.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/AntFileRunner.java
@@ -18,7 +18,8 @@
  * Responsible for running ant files.
  */
 public class AntFileRunner extends ExternalToolsRunner {
-	private static final String LOGGER_CLASS = "org.eclipse.ui.externaltools.internal.ui.ant.AntBuildLogger"; //$NON-NLS-1$
+	private static final String ANT_LOGGER_CLASS = "org.eclipse.ui.externaltools.internal.ui.ant.AntBuildLogger"; //$NON-NLS-1$
+	private static final String NULL_LOGGER_CLASS = "org.eclipse.ui.externaltools.internal.ui.ant.NullBuildLogger"; //$NON-NLS-1$
 	private static final String BASE_DIR_PREFIX = "-Dbasedir="; //$NON-NLS-1$
 
 	/**
@@ -47,7 +48,9 @@
 			if (targets.length > 0)
 				runner.setExecutionTargets(targets);
 			if (runnerContext.getShowLog())
-				runner.addBuildLogger(LOGGER_CLASS);
+				runner.addBuildLogger(ANT_LOGGER_CLASS);
+			else
+				runner.addBuildLogger(NULL_LOGGER_CLASS);
 			runner.run(monitor);
 		} catch (CoreException e) {
 			Throwable carriedException = e.getStatus().getException();
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ExternalToolsBuilder.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ExternalToolsBuilder.java
index 44208ed..c183ab0 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ExternalToolsBuilder.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ExternalToolsBuilder.java
@@ -48,6 +48,8 @@
 				context.run(monitor);
 			} catch (InterruptedException e) {
 				// Do nothing, the operation was cancelled by the user
+			} finally {
+				forgetLastBuiltState();
 			}
 		}
 		
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
index b8f64cd..c95d96d 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/ProgramRunner.java
@@ -45,8 +45,8 @@
 				p = Runtime.getRuntime().exec(commandLine, null, workingDir);
 			else
 				p = Runtime.getRuntime().exec(commandLine);		
-			new Thread(getRunnable(p.getInputStream(), LogConsoleDocument.getInstance(), LogConsoleDocument.MSG_INFO, finished)).start();
-			new Thread(getRunnable(p.getErrorStream(), LogConsoleDocument.getInstance(), LogConsoleDocument.MSG_ERR, finished)).start();
+			new Thread(getRunnable(p.getInputStream(), LogConsoleDocument.getInstance(), LogConsoleDocument.MSG_INFO, finished, runnerContext.getShowLog())).start();
+			new Thread(getRunnable(p.getErrorStream(), LogConsoleDocument.getInstance(), LogConsoleDocument.MSG_ERR, finished, runnerContext.getShowLog())).start();
 	
 			p.waitFor();
 				
@@ -72,7 +72,7 @@
 	 * Returns a runnable that is used to capture and print out a stream
 	 * from another process.
 	 */
-	private Runnable getRunnable(final InputStream input, final LogConsoleDocument document, final int severity, final boolean[] finished) {
+	private Runnable getRunnable(final InputStream input, final LogConsoleDocument document, final int severity, final boolean[] finished, final boolean showLog) {
 		return new Runnable() {
 			public void run() {
 				try {
@@ -84,7 +84,8 @@
 							sb.append((char)c);
 							c = input.read();
 						}
-						document.append(sb.toString(), severity);
+						if (showLog)
+							document.append(sb.toString(), severity);
 						try {
 							Thread.currentThread().sleep(100);
 						} catch (InterruptedException e) {
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/messages.properties b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/messages.properties
index a661903..e5392a6 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/messages.properties
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/core/messages.properties
@@ -39,17 +39,21 @@
 EditDialog.browseWkspButton1 = Browse &Workspace...
 EditDialog.browseFileSysButton1 = Browse &File System...
 EditDialog.browseVarsButton = Browse &Variables...
-EditDialog.browseWkspButton2 = Browse Wor&kspace...
-EditDialog.browseFileSysButton2 = Browse File &System...
-EditDialog.refreshOptionButton = Browse &Options...
+EditDialog.directoryBrowseButton = Browse &Options...
+EditDialog.refreshOptionButton = Browse O&ptions...
 EditDialog.browseWorkspaceTitle = Browse Workspace
 EditDialog.selectTool = &Select the external tool to use:
 EditDialog.selectResource = &Select the resource to use:
+EditDialog.selectContainer = &Select the container to use:
 EditDialog.selectDirectory = &Select the working directory to use:
 EditDialog.selectTargets = &Select the Ant targets to use:
 EditDialog.selectFolder = &Select the folder to use:
 EditDialog.browseVarTitle = Browse Variables
+EditDialog.browseDirTitle = Browse Working Directory Options
 EditDialog.selectVar = &Select a variable to use:
+EditDialog.selectDir = &Select a working directory option:
+EditDialog.dirBrowseWorkspace = Browse workspace
+EditDialog.dirBrowseFileSystem = Browse file system
 EditDialog.varWorkspaceLocLabel = Workspace location
 EditDialog.varProjectLocLabel = Selected resource's project location
 EditDialog.varContainerLocLabel = Selected resource's container location
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
index c3289bf..16677f3 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/AntLaunchWizardPage.java
@@ -67,7 +67,7 @@
 	 * Method declared on IWizardPage.
 	 */
 	public void createControl(Composite parent) {
-		WorkbenchHelp.setHelp(getControl(), IHelpContextIds.ANT_LAUNCH_WIZARD_PAGE);		
+		WorkbenchHelp.setHelp(parent, IHelpContextIds.ANT_LAUNCH_WIZARD_PAGE);		
 		
 		Composite composite = new Composite(parent, SWT.NULL);
 		composite.setLayout(new GridLayout());
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
index ec2f2fa..86feb9e 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/EditDialog.java
@@ -58,8 +58,8 @@
 	private Button locationBrowseWorkspace;
 	private Button locationBrowseFileSystem;
 	private Button argumentsBrowseVariable;
-	private Button directoryBrowseWorkspace;
-	private Button directoryBrowseFileSystem;
+//	private Button directoryBrowseWorkspace;
+	private Button directoryBrowseButton;
 	private Button refreshOptionButton;
 	private Button showLog;
 	
@@ -141,7 +141,7 @@
 		// Need to keep track of the FormData's for the buttons to set
 		// the width of all the buttons to be the same as the largest
 		// button width
-		FormData[] buttonData = new FormData[6];
+		FormData[] buttonData = new FormData[5];
 		
 		// Create name label
 		Label nameLabel = new Label(topComp, SWT.NONE);
@@ -221,39 +221,30 @@
 		argumentsBrowseVariable.setLayoutData(buttonData[2]);
 		checkForMaxWidth(argumentsBrowseVariable);
 
-		// Create directory browse workspace button.
-		directoryBrowseWorkspace = new Button(topComp, SWT.PUSH);
-		directoryBrowseWorkspace.setText(ToolMessages.getString("EditDialog.browseWkspButton2")); //$NON-NLS-1$
-		buttonData[3] = new FormData();
-		buttonData[3].left = new FormAttachment(argumentsBrowseVariable, 0, SWT.LEFT);
-		buttonData[3].top = new FormAttachment(argumentsBrowseVariable, GROUP_SPACE, SWT.BOTTOM);
-		directoryBrowseWorkspace.setLayoutData(buttonData[3]);
-		checkForMaxWidth(directoryBrowseWorkspace);
-
 		// Create label for directory text field.
 		Label dirLabel = new Label(topComp, SWT.NONE);
 		dirLabel.setText(ToolMessages.getString("EditDialog.dirLabel")); //$NON-NLS-1$
 		data = new FormData();
-		data.bottom = new FormAttachment(directoryBrowseWorkspace, 0, SWT.BOTTOM);
+		data.top = new FormAttachment(argumentsField, GROUP_SPACE+buttonLabelHeightDiff, SWT.BOTTOM);
 		dirLabel.setLayoutData(data);
 
 		// Create directory text field.
 		directoryField = new Text(topComp, SWT.BORDER);
 		data = new FormData();
 		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(directoryBrowseWorkspace, -MARGIN_SPACE, SWT.LEFT);
-		data.top = new FormAttachment(directoryBrowseWorkspace, WIDGET_SPACE, SWT.BOTTOM);
+		data.right = new FormAttachment(argumentsBrowseVariable, -MARGIN_SPACE, SWT.LEFT);
+		data.top = new FormAttachment(dirLabel, WIDGET_SPACE, SWT.BOTTOM);
 		data.width = FIELD_WIDTH;
 		directoryField.setLayoutData(data);
 
 		// Create directory browse file system button.
-		directoryBrowseFileSystem = new Button(topComp, SWT.PUSH);
-		directoryBrowseFileSystem.setText(ToolMessages.getString("EditDialog.browseFileSysButton2")); //$NON-NLS-1$
-		buttonData[4] = new FormData();
-		buttonData[4].left = new FormAttachment(argumentsField, MARGIN_SPACE, SWT.RIGHT);
-		buttonData[4].bottom = new FormAttachment(directoryField, 0, SWT.BOTTOM);
-		directoryBrowseFileSystem.setLayoutData(buttonData[4]);
-		checkForMaxWidth(directoryBrowseFileSystem);
+		directoryBrowseButton = new Button(topComp, SWT.PUSH);
+		directoryBrowseButton.setText(ToolMessages.getString("EditDialog.directoryBrowseButton")); //$NON-NLS-1$
+		buttonData[3] = new FormData();
+		buttonData[3].left = new FormAttachment(argumentsField, MARGIN_SPACE, SWT.RIGHT);
+		buttonData[3].bottom = new FormAttachment(directoryField, 0, SWT.BOTTOM);
+		directoryBrowseButton.setLayoutData(buttonData[3]);
+		checkForMaxWidth(directoryBrowseButton);
 		
 		// Create refresh check box and label.
 		Label refreshLabel = new Label(topComp, SWT.NONE);
@@ -275,10 +266,11 @@
 		// Create refresh scope.
 		refreshOptionButton = new Button(topComp, SWT.PUSH);
 		refreshOptionButton.setText(ToolMessages.getString("EditDialog.refreshOptionButton")); //$NON-NLS-1$
-		buttonData[5] = new FormData();
-		buttonData[5].left = new FormAttachment(directoryBrowseFileSystem, 0, SWT.LEFT);
-		buttonData[5].top = new FormAttachment(refreshField, 0, SWT.TOP);
-		refreshOptionButton.setLayoutData(buttonData[5]);
+		buttonData[4] = new FormData();
+		buttonData[4].left = new FormAttachment(directoryBrowseButton, 0, SWT.LEFT);
+		buttonData[4].top = new FormAttachment(refreshField, 0, SWT.TOP);
+		refreshOptionButton.setLayoutData(buttonData[4]);
+		checkForMaxWidth(refreshOptionButton);
 		
 		// Create show log checkbox
 		showLog = new Button(topComp, SWT.CHECK);
@@ -318,8 +310,7 @@
 			argumentsField,
 			argumentsBrowseVariable,
 			directoryField,
-			directoryBrowseWorkspace,
-			directoryBrowseFileSystem,
+			directoryBrowseButton,
 			refreshField,
 			refreshOptionButton};
 		topComp.setTabList(tabList);
@@ -397,31 +388,12 @@
 			}
 		});
 		
-		directoryBrowseWorkspace.addSelectionListener(new SelectionAdapter() {
+		directoryBrowseButton.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
-				ContainerSelectionDialog dialog = new ContainerSelectionDialog(
-					getShell(), 
-					ResourcesPlugin.getWorkspace().getRoot(), 
-					false, 
-					ToolMessages.getString("EditDialog.selectFolder")); //$NON-NLS-1$
-				dialog.showClosedProjects(false);
-				dialog.setTitle(ToolMessages.getString("EditDialog.browseWorkspaceTitle")); //$NON-NLS-1$
+				DirectorySelectionDialog dialog = new DirectorySelectionDialog(getShell());
 				dialog.open();
-				Object[] result = dialog.getResult();
-				if (result != null && result.length == 1) {
-					StringBuffer buf = new StringBuffer();
-					ToolUtil.buildVariableTag(ExternalTool.VAR_WORKSPACE_LOC, result[0].toString(), buf);
-					directoryField.setText(buf.toString());
-				}
-			}
-		});
-		
-		directoryBrowseFileSystem.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SAVE);
-				dialog.setMessage(ToolMessages.getString("EditDialog.selectDirectory")); //$NON-NLS-1$
-				dialog.setFilterPath(directoryField.getText());
-				String selectedDirectory = dialog.open();
+				Object[] results = dialog.getResult();
+				String selectedDirectory = (String)results[0];
 				if (selectedDirectory != null) {
 					directoryField.setText(selectedDirectory);
 				}
@@ -832,6 +804,109 @@
 		}
 	}
 	
+		/**
+	 * Internal dialog to show available variables from which
+	 * the user can select one.
+	 */
+	private class DirectorySelectionDialog extends SelectionDialog {
+		String location;
+		List list;
+		
+		public DirectorySelectionDialog(Shell parent) {
+			super(parent);
+			setTitle(ToolMessages.getString("EditDialog.browseDirTitle")); //$NON-NLS-1$
+			WorkbenchHelp.setHelp(parent, IHelpContextIds.VARIABLE_SELECTION_DIALOG);
+		}
+
+		/* (non-Javadoc)
+		 * Method declared on Dialog.
+		 */
+		protected Control createDialogArea(Composite parent) {
+			// create composite 
+			Composite dialogArea = (Composite)super.createDialogArea(parent);
+			
+			Label label = new Label(dialogArea, SWT.LEFT);
+			label.setText(ToolMessages.getString("EditDialog.selectDir")); //$NON-NLS-1$
+			
+			list = new List(dialogArea, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.BORDER);
+			GridData data = new GridData(GridData.FILL_BOTH);
+			data.heightHint = SIZING_SELECTION_PANE_HEIGHT;
+			data.widthHint = SIZING_SELECTION_PANE_WIDTH;
+			list.setLayoutData(data);
+
+			list.add(ToolMessages.getString("EditDialog.varWorkspaceLocLabel")); //$NON-NLS-1$
+			list.add(ToolMessages.getString("EditDialog.varProjectLocLabel")); //$NON-NLS-1$
+			list.add(ToolMessages.getString("EditDialog.varContainerLocLabel")); //$NON-NLS-1$
+			list.add(ToolMessages.getString("EditDialog.varResourceLocLabel")); //$NON-NLS-1$
+			list.add(ToolMessages.getString("EditDialog.dirBrowseWorkspace")); //$NON-NLS-1$
+			list.add(ToolMessages.getString("EditDialog.dirBrowseFileSystem")); //NON-NLS-1$)
+			
+			return dialogArea;
+		}
+		
+		/* (non-Javadoc)
+		 * Method declared on Dialog.
+		 */
+		protected void okPressed() {
+			int sel = list.getSelectionIndex();
+			String result = null;
+			
+			switch (sel) {
+				case 0 :
+					result = ToolUtil.buildVariableTag(ExternalTool.VAR_WORKSPACE_LOC, null);
+					break;
+
+				case 1 :
+					result = ToolUtil.buildVariableTag(ExternalTool.VAR_PROJECT_LOC, null);
+					break;
+
+				case 2 :
+					result = ToolUtil.buildVariableTag(ExternalTool.VAR_CONTAINER_LOC, null);
+					break;
+
+				case 3 :
+					result = ToolUtil.buildVariableTag(ExternalTool.VAR_RESOURCE_LOC, null);
+					break;
+
+				case 4 :
+					result = showContainerDialog();
+					break;
+
+				case 5 :
+					result = showDirectoryDialog();
+					break;
+				
+			}
+			
+			if (result != null)
+				setSelectionResult(new Object[] {result});
+			super.okPressed();
+		}
+		
+		private String showContainerDialog() {
+			String varName = ExternalTool.VAR_WORKSPACE_LOC;
+			ContainerSelectionDialog containerDialog;
+			containerDialog = new ContainerSelectionDialog(
+				getShell(), 
+				ResourcesPlugin.getWorkspace().getRoot(),
+				false,
+				ToolMessages.getString("EditDialog.selectContainer")); //$NON-NLS-1$
+			containerDialog.open();
+			Object[] resource = containerDialog.getResult();
+			if (resource != null && resource.length > 0)
+				return ToolUtil.buildVariableTag(varName, ((IPath)resource[0]).toString());
+			else
+				return null;
+		}
+		
+		private String showDirectoryDialog() {
+				DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SAVE);
+				dialog.setMessage(ToolMessages.getString("EditDialog.selectDirectory")); //$NON-NLS-1$
+				dialog.setFilterPath(directoryField.getText());
+				return dialog.open();	
+		}
+	}
+	
 	/**
 	 * Internal dialog to show available refresh scope from which
 	 * the user can select one.
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/ExternalToolsAction.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/ExternalToolsAction.java
index 68ea068..c03c76f 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/ExternalToolsAction.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/ExternalToolsAction.java
@@ -172,6 +172,11 @@
 			
 		ToolUtil.saveDirtyEditors(window);
 			
+		// Selection is assigned BEFORE Log Console is given focus.
+		// Otherwise incorrect selection is used. Selection is assigned outside
+		// runnable.run(IProgressMonitor) to avoid invalid thread access.
+		final ISelection sel = window.getSelectionService().getSelection();
+								
 		if (tool.getShowLog()) {
 			ToolUtil.showLogConsole(window);
 			ToolUtil.clearLogDocument();
@@ -180,11 +185,15 @@
 		IRunnableWithProgress runnable = new IRunnableWithProgress() {
 			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
 				IResource resource = null;
-				ISelection sel = window.getSelectionService().getSelection();
 				if (sel instanceof IStructuredSelection) {
 					Object result = ((IStructuredSelection)sel).getFirstElement();
 					if (result instanceof IResource)
 						resource = (IResource) result;
+					else if (result instanceof IAdaptable) {
+						Object temp = ((IAdaptable) result).getAdapter(IResource.class);
+						if (temp instanceof IResource)
+							resource = (IResource) temp;
+					}
 				}
 				DefaultRunnerContext context;
 				if (resource != null)
diff --git a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleView.java b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleView.java
index a8fd3fe..61a8d27 100644
--- a/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleView.java
+++ b/org.eclipse.ui.externaltools/External Tools/org/eclipse/ui/externaltools/internal/ui/LogConsoleView.java
Binary files differ