diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/GFWorkspaceCommandStackImpl.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/GFWorkspaceCommandStackImpl.java
index ea62fb6..5b374f1 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/GFWorkspaceCommandStackImpl.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/GFWorkspaceCommandStackImpl.java
@@ -13,6 +13,7 @@
  *    mwenz - Bug 340627 - Features should be able to indicate cancellation
  *    mwenz - Bug 351053 - Remove the need for WorkspaceCommandStackImpl
  *    mwenz - Bug 371717 - IllegalStateException When updating cells on Diagram
+ *    mwenz - Bug 389380 - Undo/Redo handling wrong Command executed by undo action
  *
  * </copyright>
  *
@@ -94,7 +95,21 @@
 					GraphitiUiInternal.getCommandService().completeExecutionInfo((DefaultExecutionInfo) executionInfo,
 							GraphitiUiInternal.getCommandService().transformFromEmfToGefCommand(command));
 				}
-				undoStackForExecutionInfo.push(executionInfo);
+
+				/*
+				 * Remove the feature and context combinations from the
+				 * execution list whose features did not do any changes. The
+				 * commands for those features are not placed on the editor
+				 * command stack and must also not appear in the stack for
+				 * additional undo steps. See Bugzilla 389380 for details. In
+				 * case no entry is left in the execution info, it must not be
+				 * written to the stack in order to keep the standard and the
+				 * additional undo stack in sync.
+				 */
+				executionInfo = GraphitiUiInternal.getCommandService().removeFeaturesWithoutChanges(executionInfo);
+				if (executionInfo.getExecutionList().length > 0) {
+					undoStackForExecutionInfo.push(executionInfo);
+				}
 			} finally {
 				topLevelCommand = true;
 			}
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/ICommandService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/ICommandService.java
index 0667da2..781d92a 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/ICommandService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/ICommandService.java
@@ -1,7 +1,7 @@
 /*******************************************************************************
  * <copyright>
  *
- * Copyright (c) 2005, 2011 SAP AG.
+ * Copyright (c) 2005, 2012 SAP AG.
  * 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
@@ -9,12 +9,14 @@
  *
  * Contributors:
  *    mwenz - Bug 324859 - initial API, implementation and documentation
+ *    mwenz - Bug 389380 - Undo/Redo handling wrong Command executed by undo action
  *
  * </copyright>
  *
  *******************************************************************************/
 package org.eclipse.graphiti.ui.internal.services;
 
+import org.eclipse.graphiti.IExecutionInfo;
 import org.eclipse.graphiti.internal.command.DefaultExecutionInfo;
 import org.eclipse.graphiti.internal.command.ICommand;
 
@@ -36,4 +38,6 @@
 
 	org.eclipse.emf.common.command.Command transformFromGefToEmfCommand(org.eclipse.gef.commands.Command gefCommand);
 
+	IExecutionInfo removeFeaturesWithoutChanges(IExecutionInfo executionInfo);
+
 }
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/CommandService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/CommandService.java
index aac3f44..7094728 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/CommandService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/CommandService.java
@@ -1,7 +1,7 @@
 /*******************************************************************************
  * <copyright>
  *
- * Copyright (c) 2005, 2011 SAP AG.
+ * Copyright (c) 2005, 2012 SAP AG.
  * 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
@@ -9,6 +9,7 @@
  *
  * Contributors:
  *    mwenz - Bug 324859 - initial API, implementation and documentation
+ *    mwenz - Bug 389380 - Undo/Redo handling wrong Command executed by undo action
  *
  * </copyright>
  *
@@ -19,6 +20,7 @@
 
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.graphiti.IExecutionInfo;
 import org.eclipse.graphiti.features.IContextHolder;
 import org.eclipse.graphiti.features.IFeature;
 import org.eclipse.graphiti.features.IFeatureAndContext;
@@ -131,4 +133,14 @@
 
 		return executionInfo;
 	}
+
+	public IExecutionInfo removeFeaturesWithoutChanges(IExecutionInfo executionInfo) {
+		DefaultExecutionInfo result = new DefaultExecutionInfo();
+		for (IFeatureAndContext featureAndContext : executionInfo.getExecutionList()) {
+			if (featureAndContext.getFeature().hasDoneChanges()) {
+				result.addFeatureAndContext(featureAndContext);
+			}
+		}
+		return result;
+	}
 }
