diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
index ca1667b..8e2d0b6 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/widgets/AbstractEEFWidgetLifecycleManager.java
@@ -268,25 +268,27 @@
 			}
 		});
 
-		this.mouseTrackListener = new MouseTrackListener() {
+		if (this.help != null) {
+			this.mouseTrackListener = new MouseTrackListener() {
 
-			@Override
-			public void mouseHover(MouseEvent e) {
-				// Defer the computation of the help message when the user hovers the Help label
-				getController().computeHelp();
-			}
+				@Override
+				public void mouseHover(MouseEvent e) {
+					// Defer the computation of the help message when the user hovers the Help label
+					getController().computeHelp();
+				}
 
-			@Override
-			public void mouseExit(MouseEvent e) {
-				// Nothing todo
-			}
+				@Override
+				public void mouseExit(MouseEvent e) {
+					// Nothing todo
+				}
 
-			@Override
-			public void mouseEnter(MouseEvent e) {
-				// Nothing todo
-			}
-		};
-		this.help.addMouseTrackListener(mouseTrackListener);
+				@Override
+				public void mouseEnter(MouseEvent e) {
+					// Nothing todo
+				}
+			};
+			this.help.addMouseTrackListener(mouseTrackListener);
+		}
 	}
 
 	/**
@@ -330,7 +332,7 @@
 	@Override
 	public void aboutToBeHidden() {
 		super.aboutToBeHidden();
-		if (!this.help.isDisposed()) {
+		if (this.help != null && !this.help.isDisposed()) {
 			this.help.removeMouseTrackListener(mouseTrackListener);
 		}
 
