diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/AbstractPickList.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/AbstractPickList.java
index 2327665..17cece3 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/AbstractPickList.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/AbstractPickList.java
@@ -126,7 +126,7 @@
 		});
 
 		tiAdd = new Button(toolBar, SWT.PUSH);
-		tiAdd.setText(messages.ModelTooling_Common_AddEllipsis);
+		tiAdd.setToolTipText(messages.ModelTooling_Common_AddEllipsis);
 		tiAdd.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
 		tiAdd.setImage(componentEditor.createImage(ResourceProvider.IMG_Obj16_table_add));
 		tiAdd.setFont(getButtonFont());
@@ -139,7 +139,7 @@
 
 		tiRemove = new Button(toolBar, SWT.PUSH);
 		tiRemove.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-		tiRemove.setText(messages.ModelTooling_Common_Remove);
+		tiRemove.setToolTipText(messages.ModelTooling_Common_Remove);
 		tiRemove.setImage(componentEditor.createImage(ResourceProvider.IMG_Obj16_table_delete));
 		tiRemove.setFont(getButtonFont());
 		tiRemove.addSelectionListener(new SelectionAdapter() {
@@ -151,7 +151,7 @@
 
 		tiDown = new Button(toolBar, SWT.PUSH);
 		tiDown.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-		tiDown.setText(messages.ModelTooling_Common_Down);
+		tiDown.setToolTipText(messages.ModelTooling_Common_Down);
 		tiDown.setImage(componentEditor.createImage(ResourceProvider.IMG_Obj16_arrow_down));
 		tiDown.setFont(getButtonFont());
 		tiDown.addSelectionListener(new SelectionAdapter() {
@@ -163,7 +163,7 @@
 
 		tiUp = new Button(toolBar, SWT.PUSH);
 		tiUp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-		tiUp.setText(messages.ModelTooling_Common_Up);
+		tiUp.setToolTipText(messages.ModelTooling_Common_Up);
 		tiUp.setImage(componentEditor.createImage(ResourceProvider.IMG_Obj16_arrow_up));
 		tiUp.setFont(getButtonFont());
 		tiUp.addSelectionListener(new SelectionAdapter() {
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4StringPickList.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4StringPickList.java
index f86fa91..dbcb180 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4StringPickList.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/E4StringPickList.java
@@ -65,12 +65,12 @@
 		// TODO does not respect NO_ORDER yet
 
 		tiReplace = new Button(getToolBar(), SWT.PUSH);
-		tiReplace.setText(messages.E4StringPickList_Replace);
+		tiReplace.setToolTipText(messages.E4StringPickList_Replace);
 		tiReplace.setImage(editor.createImage(ResourceProvider.IMG_Obj16_world_edit));
 		tiReplace.setFont(getButtonFont());
 
 		Composite valueParent = new Composite(getToolBar().getParent(), SWT.BORDER);
-		valueParent.setLayout(new GridLayout(2, false));
+		valueParent.setLayout(new GridLayout(5, false));
 		valueParent.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
 
 		Label l = new Label(valueParent, SWT.NONE);
