diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
index 7609c5d7cecab4bb54b51e5caa976efcb13c64ba..e0b8351b4423f2f41b2fb2a02f506de630205857 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
@@ -17,7 +17,9 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.internal;
 
+import org.eclipse.emf.common.command.CommandStack;
 import org.eclipse.emf.ecore.EObject;
+import org.fortiss.tooling.kernel.interfaces.IStorageProvider;
 import org.fortiss.tooling.kernel.services.ICommandStackService;
 import org.fortiss.tooling.kernel.services.IPersistencyService;
 
@@ -34,31 +36,41 @@ public class CommandStackService implements ICommandStackService {
 	/** {@inheritDoc} */
 	@Override
 	public void runAsCommand(EObject target, Runnable runner) {
-		IPersistencyService.INSTANCE.getStorageProviderFor(target)
-				.runAsCommand(target, runner);
+		IStorageProvider provider = IPersistencyService.INSTANCE
+				.getStorageProviderFor(target);
+		if (provider != null) {
+			provider.runAsCommand(target, runner);
+		}
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public boolean canUndo(EObject target) {
-		return IPersistencyService.INSTANCE.getCommandStack(target).canUndo();
+		CommandStack stack = getCommandStack(target);
+		return stack != null && stack.canUndo();
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public boolean canRedo(EObject target) {
-		return IPersistencyService.INSTANCE.getCommandStack(target).canRedo();
+		CommandStack stack = getCommandStack(target);
+		return stack != null && stack.canRedo();
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public void undo(EObject target) {
-		IPersistencyService.INSTANCE.getCommandStack(target).undo();
+		getCommandStack(target).undo();
 	}
 
 	/** {@inheritDoc} */
 	@Override
 	public void redo(EObject target) {
-		IPersistencyService.INSTANCE.getCommandStack(target).redo();
+		getCommandStack(target).redo();
+	}
+
+	/** Fetches command stack from persistency service. */
+	private CommandStack getCommandStack(EObject target) {
+		return IPersistencyService.INSTANCE.getCommandStack(target);
 	}
 }