diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/EEFTab.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/EEFTab.java
index 45ba110..674f466 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/EEFTab.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/api/EEFTab.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015, 2016 Obeo.
+ * Copyright (c) 2015, 2018 Obeo.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -65,7 +65,7 @@
 	 *            The container of the whole form
 	 */
 	public void createControls(Composite parent, IEEFFormContainer container) {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#createControls(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#createControls(...)"); //$NON-NLS-1$
 
 		Composite composite = container.getWidgetFactory().createComposite(parent);
 		composite.setLayout(new GridLayout(1, false));
@@ -80,7 +80,7 @@
 	 * This method needs to be called before displaying the tab in the user interface.
 	 */
 	public void aboutToBeShown() {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#aboutToBeShown(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#aboutToBeShown(...)"); //$NON-NLS-1$
 
 		this.lifecycleManager.aboutToBeShown();
 
@@ -96,7 +96,7 @@
 	 *            The selection
 	 */
 	public void setInput(IWorkbenchPart part, ISelection selection) {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#setInput(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#setInput(...)"); //$NON-NLS-1$
 
 		if (selection instanceof IStructuredSelection) {
 			IStructuredSelection iStructuredSelection = (IStructuredSelection) selection;
@@ -116,7 +116,7 @@
 	 * Refreshes the tab.
 	 */
 	public void refresh() {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#refresh(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#refresh(...)"); //$NON-NLS-1$
 
 		this.lifecycleManager.refresh();
 	}
@@ -125,7 +125,7 @@
 	 * This method needs to be called before hidding the tab.
 	 */
 	public void aboutToBeHidden() {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#aboutToBeHidden(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#aboutToBeHidden(...)"); //$NON-NLS-1$
 
 		updater.disable();
 
@@ -136,7 +136,7 @@
 	 * Disposes the tab.
 	 */
 	public void dispose() {
-		EEFIdeUiPlugin.getPlugin().debug("EEFSection#dispose(...)"); //$NON-NLS-1$
+		EEFIdeUiPlugin.getPlugin().debug("EEFTab#dispose(...)"); //$NON-NLS-1$
 
 		this.lifecycleManager.dispose();
 	}
