diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ExecutionAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ExecutionAction.java
index 07d0a51..dafdae0 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ExecutionAction.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/actions/ExecutionAction.java
@@ -26,7 +26,8 @@
 import org.eclipse.ui.IWorkbenchWindow;
 
 /**
- * This is the super class of the Run & Debug actions which appears in the desktop menu and toolbar.
+ * This is the super class of the Run &amp; Debug actions which appears in the
+ * desktop menu and toolbar.
  */
 public abstract class ExecutionAction implements IActionDelegate2 {
 
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java
index 309e490..cfb8d50 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/IDebugUIConstants.java
@@ -184,7 +184,8 @@
 	String PREF_REUSE_EDITOR = PLUGIN_ID + ".reuse_editor"; //$NON-NLS-1$
 
 	/**
-	 * Integer preference that specifies the length of the Run & Debug launch history lists.
+	 * Integer preference that specifies the length of the Run &amp; Debug launch
+	 * history lists.
 	 *
 	 * @since 2.0
 	 */
@@ -473,13 +474,15 @@
 	String IMG_OBJS_BREAKPOINT_GROUP_DISABLED = "IMG_OBJS_BREAKPOINT_GROUP_DISABLED"; //$NON-NLS-1$
 
 	/**
-	 * Enabled watchpoint image identifier (access & modification).
+	 * Enabled watchpoint image identifier (access &amp; modification).
+	 *
 	 * @since 3.0
 	 */
 	String IMG_OBJS_WATCHPOINT= "IMG_OBJS_WATCHPOINT"; //$NON-NLS-1$
 
 	/**
-	 * Disabled watchpoint image identifier (access & modification).
+	 * Disabled watchpoint image identifier (access &amp; modification).
+	 *
 	 * @since 3.0
 	 */
 	String IMG_OBJS_WATCHPOINT_DISABLED= "IMG_OBJS_WATCHPOINT_DISABLED"; //$NON-NLS-1$
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/ILaunchShortcut.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/ILaunchShortcut.java
index c3adfdc..9c421cb 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/ILaunchShortcut.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/ILaunchShortcut.java
@@ -33,6 +33,7 @@
  * A launch shortcut extension is defined in <code>plugin.xml</code>. Following
  * is an example definition of a launch shortcut extension.
  * </p>
+ * 
  * <pre>
  * &lt;extension point="org.eclipse.debug.ui.launchShortcuts"&gt;
  *    &lt;shortcut
@@ -116,9 +117,9 @@
  * <code>org.eclipse.debug.ui.actions.ILaunchable</code> interface is simply
  * used to tag objects that support contextual launching.</li>
  * <li><code>contextLabel</code> zero or more context menu labels. For shortcuts
- * that pass their filter tests, the specified label will appear in the "Run ->"
- * context menu and be bound to a launch action of the specified mode (e.g.
- * run,debug,profile).</li>
+ * that pass their filter tests, the specified label will appear in the "Run
+ * -&gt;" context menu and be bound to a launch action of the specified mode
+ * (e.g. run,debug,profile).</li>
  * <li><code>configurationType</code> allows more that one associated launch
  * configuration type to be specified for this launch shortcut. That way
  * consumers of launch shortcut information can know what kinds of launch
@@ -131,7 +132,7 @@
  * Clients contributing a launch shortcut are intended to implement this
  * interface.
  * </p>
- * 
+ *
  * @since 2.0
  */
 public interface ILaunchShortcut {
diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
index 39e720a..f409fa3 100644
--- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
+++ b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
@@ -227,16 +227,16 @@
 	}
 
 	/**
-	 * Sets the text buffer size for this console. The high water mark indicates
-	 * the maximum number of characters stored in the buffer. The low water mark
+	 * Sets the text buffer size for this console. The high water mark indicates the
+	 * maximum number of characters stored in the buffer. The low water mark
 	 * indicates the number of characters remaining in the buffer when the high
 	 * water mark is exceeded.
 	 *
-	 * @param low the number of characters remaining in the buffer when the high
-	 *  water mark is exceeded (if -1 the console does not limit output)
-	 * @param high the maximum number of characters this console will cache in
-	 *  its text buffer (if -1 the console does not limit output)
-	 * @exception IllegalArgumentException if low >= high & low != -1
+	 * @param low  the number of characters remaining in the buffer when the high
+	 *             water mark is exceeded (if -1 the console does not limit output)
+	 * @param high the maximum number of characters this console will cache in its
+	 *             text buffer (if -1 the console does not limit output)
+	 * @exception IllegalArgumentException if low &gt;= high &amp; low != -1
 	 */
 	public void setWaterMarks(int low, int high) {
 		if (low >= 0) {
