diff --git a/plugins/org.eclipse.epsilon.picto/icons/newPictoView.png b/plugins/org.eclipse.epsilon.picto/icons/newPictoView.png
new file mode 100644
index 0000000..4eff4c9
--- /dev/null
+++ b/plugins/org.eclipse.epsilon.picto/icons/newPictoView.png
Binary files differ
diff --git a/plugins/org.eclipse.epsilon.picto/icons/pin.png b/plugins/org.eclipse.epsilon.picto/icons/pin.png
new file mode 100644
index 0000000..fd0ad18
--- /dev/null
+++ b/plugins/org.eclipse.epsilon.picto/icons/pin.png
Binary files differ
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/PictoView.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/PictoView.java
index 32176e0..214a7ca 100644
--- a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/PictoView.java
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/PictoView.java
@@ -65,6 +65,7 @@
 	protected int[] sashFormWeights = null;
 	protected IEditorPart renderedEditor = null;
 	protected boolean locked = false;
+	protected boolean pinned = false;
 	protected ToggleTreeViewerAction hideTreeAction;
 	protected HashMap<IEditorPart, ViewTree> activeViewHistory = new HashMap<>();
 	protected ViewTree activeView = null;
@@ -175,7 +176,7 @@
 			
 			@Override
 			public void partActivated(IWorkbenchPartReference partRef) {
-				if (locked) return;
+				if (locked || pinned) return;
 				Display.getCurrent().asyncExec(() -> {
 					IWorkbenchPart part = partRef.getPart(false);
 					
@@ -203,7 +204,7 @@
 				IEditorPart editorPart = (IEditorPart) workbenchPart;
 				activeViewHistory.remove(editorPart);
 				
-				if (locked) {
+				if (locked || pinned) {
 					if (editor == editorPart) editor = null;
 					return;
 				}
@@ -229,11 +230,14 @@
 		toolbar.add(new RefreshAction(this));
 		toolbar.add(new LockAction(this));
 		toolbar.add(new Separator());
+		toolbar.add(new PinAction(this));
+		toolbar.add(new NewPictoViewAction());
+		toolbar.add(new Separator());
 		toolbar.add(hideTreeAction);
 		toolbar.add(new MoveTreeAction());
 		toolbar.add(new Separator());
 		toolbar.add(new ViewContentsMenuAction(this));
-		
+
 		IMenuManager dropDownMenu = getViewSite().getActionBars().getMenuManager();
 		dropDownMenu.add(new ClearViewTreeLabelProviderIconCacheAction());
 		dropDownMenu.add(new ToggleVerbatimSourcesAction());
@@ -603,4 +607,12 @@
 		return viewTreeSelectionHistory;
 	}
 
+	public boolean isPinned() {
+		return pinned;
+	}
+
+	public void setPinned(boolean pinned) {
+		this.pinned = pinned;
+	}
+
 }
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/NewPictoViewAction.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/NewPictoViewAction.java
new file mode 100644
index 0000000..156bf9d
--- /dev/null
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/NewPictoViewAction.java
@@ -0,0 +1,30 @@
+package org.eclipse.epsilon.picto.actions;
+
+import org.eclipse.epsilon.picto.PictoPlugin;
+import org.eclipse.epsilon.picto.PictoView;
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+
+public class NewPictoViewAction extends Action {
+
+	protected boolean running = false;
+
+	public NewPictoViewAction() {
+		this.setText("New Picto View");
+		this.setImageDescriptor(PictoPlugin.getDefault().getImageDescriptor("icons/newPictoView.png"));
+	}
+
+	@Override
+	public void run() {
+
+		IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+		try {
+			activePage.showView(PictoView.ID, Math.random() * 1000 + "", IWorkbenchPage.VIEW_ACTIVATE);
+		}
+		catch (Exception ex) {
+			ex.printStackTrace();
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/PinAction.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/PinAction.java
new file mode 100644
index 0000000..eb97dde
--- /dev/null
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/actions/PinAction.java
@@ -0,0 +1,30 @@
+/*********************************************************************
+* Copyright (c) 2008 The University of York.
+*
+* This program and the accompanying materials are made
+* available under the terms of the Eclipse Public License 2.0
+* which is available at https://www.eclipse.org/legal/epl-2.0/
+*
+* SPDX-License-Identifier: EPL-2.0
+**********************************************************************/
+package org.eclipse.epsilon.picto.actions;
+
+import org.eclipse.epsilon.picto.PictoPlugin;
+import org.eclipse.epsilon.picto.PictoView;
+import org.eclipse.jface.action.Action;
+
+public class PinAction extends Action {
+	
+	protected PictoView pictoView;
+	
+	public PinAction(PictoView pictoView) {
+		super("Pin to current editor", AS_CHECK_BOX);
+		setImageDescriptor(PictoPlugin.getDefault().getImageDescriptor("icons/pin.png"));
+		this.pictoView = pictoView;
+	}
+	
+	@Override
+	public void run() {
+		pictoView.setPinned(!pictoView.isPinned());
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/source/EglPictoSource.java b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/source/EglPictoSource.java
index 7bb830a..8f860d7 100644
--- a/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/source/EglPictoSource.java
+++ b/plugins/org.eclipse.epsilon.picto/src/org/eclipse/epsilon/picto/source/EglPictoSource.java
@@ -90,8 +90,11 @@
 			//}
 			//else {
 			if (resource != null) {
-				model = new InMemoryEmfModel("M", resource);
-				((InMemoryEmfModel) model).setExpand(true);
+				// synchronization prevents races when using multiple Picto views
+				synchronized (resource) {
+					model = new InMemoryEmfModel("M", resource);
+					((InMemoryEmfModel) model).setExpand(true);
+				}
 			}
 			//}
 			
