diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
index f03cf6d..615e325 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2009 Anyware Technologies and others.
+ * Copyright (c) 2009, 2010 Anyware Technologies and others.
  * 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
@@ -7,8 +7,9 @@
  * 
  * Contributors:
  *     Anyware Technologies - initial API and implementation
+ *     Sebastien Moran <SMoran@sierrawireless.com> - bug 308802
  *
- * $Id: EmfMasterDetailBlock.java,v 1.21 2010/01/05 15:45:45 bcabe Exp $
+ * $Id: EmfMasterDetailBlock.java,v 1.22 2010/01/22 16:42:08 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -39,6 +40,8 @@
 
 public abstract class EmfMasterDetailBlock extends MasterDetailsBlock implements IDetailsPageProvider, IMenuListener {
 
+	public static final int DEFAULT_VIEWER_OPTIONS = SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
+
 	protected EmfFormEditor<?> parentEditor;
 
 	/**
@@ -100,7 +103,7 @@
 
 		// deliberate use of the 3.4 API
 		// TODO try to use the new look using a 3.5 fragment
-		FilteredTree ft = new FilteredTree(client, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter());
+		FilteredTree ft = new FilteredTree(client, getViewerOptions(), new PatternFilter());
 		treeViewer = ft.getViewer();
 
 		// Prevent scrollbars to be managed by the editor's root composite
@@ -131,7 +134,9 @@
 				toolBarManager.add(addAction);
 			}
 
-			toolBarManager.add(removeAction);
+			if (removeAction != null) {
+				toolBarManager.add(removeAction);
+			}
 			toolBarManager.update(true);
 			section.setTextClient(toolBarManager.getControl());
 		}
@@ -174,7 +179,8 @@
 			//Generic action for remove button
 			getRemoveButton().addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent e) {
-					removeAction.run();
+					if (removeAction != null)
+						removeAction.run();
 				}
 			});
 		}
@@ -188,6 +194,15 @@
 	}
 
 	/**
+	 * Default styles : SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
+	 * 
+	 * @return int, style used to create the TreeViewer
+	 */
+	protected int getViewerOptions() {
+		return DEFAULT_VIEWER_OPTIONS;
+	}
+
+	/**
 	 * Add listeners to manage activation/deactivation of the treeViewer's
 	 * ActionBarContributor's global handlers
 	 */
