diff --git a/bundles/org.eclipse.capra.ui.plantuml/OSGI-INF/l10n/bundle.properties b/bundles/org.eclipse.capra.ui.plantuml/OSGI-INF/l10n/bundle.properties
index accf529..cad6717 100644
--- a/bundles/org.eclipse.capra.ui.plantuml/OSGI-INF/l10n/bundle.properties
+++ b/bundles/org.eclipse.capra.ui.plantuml/OSGI-INF/l10n/bundle.properties
@@ -26,5 +26,6 @@
 command.label.depth = Set transitivity depth
 command.name.lock = Lock current diagram
 command.label.lock = Lock current diagram
+command.name.reverseLinkDirection = Reverse link direction
 Bundle-Vendor = Eclipse Capra
 Bundle-Name = Eclipse Capra Trace Visualisation Support (PlantUML)
diff --git a/bundles/org.eclipse.capra.ui.plantuml/plugin.xml b/bundles/org.eclipse.capra.ui.plantuml/plugin.xml
index 2835040..62ad9eb 100644
--- a/bundles/org.eclipse.capra.ui.plantuml/plugin.xml
+++ b/bundles/org.eclipse.capra.ui.plantuml/plugin.xml
@@ -78,6 +78,14 @@
                id="org.eclipse.ui.commands.toggleState">
          </state>
       </command>
+      <command
+            id="org.eclipse.capra.ui.plantuml.reverseLinkDirection"
+            name="%command.name.reverseLinkDirection">
+         <state
+               class="org.eclipse.jface.commands.ToggleState"
+               id="org.eclipse.ui.commands.toggleState">
+         </state>
+      </command>
    </extension>
    <extension
          point="org.eclipse.ui.handlers">
@@ -105,6 +113,10 @@
             class="org.eclipse.capra.ui.plantuml.handlers.ToggleLockDiagramHandler"
             commandId="org.eclipse.capra.ui.plantuml.lockDiagram">
       </handler>
+      <handler
+            class="org.eclipse.capra.ui.plantuml.handlers.ReverseLinkDirectionHandler"
+            commandId="org.eclipse.capra.ui.plantuml.reverseLinkDirection">
+      </handler>
    </extension>
 	<extension
          point="org.eclipse.ui.menus">
@@ -140,6 +152,11 @@
                label="%command.name.lock"
                style="toggle">
          </command>
+         <command
+               commandId="org.eclipse.capra.ui.plantuml.reverseLinkDirection"
+               label="%command.name.reverseLinkDirection"
+               style="toggle">
+         </command>
       </menuContribution>
    </extension>
    
diff --git a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/CapraDiagramTextProvider.java b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/CapraDiagramTextProvider.java
index 5c0f9c9..f6c9c10 100644
--- a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/CapraDiagramTextProvider.java
+++ b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/CapraDiagramTextProvider.java
@@ -19,8 +19,8 @@
 import java.util.stream.Collectors;
 
 import org.eclipse.capra.core.adapters.Connection;
-import org.eclipse.capra.core.adapters.ITraceabilityInformationModelAdapter;
 import org.eclipse.capra.core.adapters.IPersistenceAdapter;
+import org.eclipse.capra.core.adapters.ITraceabilityInformationModelAdapter;
 import org.eclipse.capra.core.handlers.IArtifactHandler;
 import org.eclipse.capra.core.handlers.IArtifactUnpacker;
 import org.eclipse.capra.core.helpers.ArtifactHelper;
@@ -29,6 +29,7 @@
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
 import org.eclipse.capra.ui.helpers.SelectionSupportHelper;
 import org.eclipse.capra.ui.plantuml.handlers.DisplayInternalLinksHandler;
+import org.eclipse.capra.ui.plantuml.handlers.ReverseLinkDirectionHandler;
 import org.eclipse.capra.ui.plantuml.handlers.SelectRelationshipsHandler;
 import org.eclipse.capra.ui.plantuml.handlers.ToggleDisplayGraphHandler;
 import org.eclipse.capra.ui.plantuml.handlers.ToggleTransitivityHandler;
@@ -89,7 +90,8 @@
 		EObject traceModel = null;
 
 		IPersistenceAdapter persistenceAdapter = ExtensionPointHelper.getPersistenceAdapter().orElseThrow();
-		ITraceabilityInformationModelAdapter metamodelAdapter = ExtensionPointHelper.getTraceabilityInformationModelAdapter().orElseThrow();
+		ITraceabilityInformationModelAdapter metamodelAdapter = ExtensionPointHelper
+				.getTraceabilityInformationModelAdapter().orElseThrow();
 
 		ResourceSet resourceSet = EditingDomainHelper.getResourceSet();
 
@@ -201,7 +203,8 @@
 			traces = metamodelAdapter.getTransitivelyConnectedElements(selectedObject, traceModel,
 					selectedRelationshipTypes, transitivityDepth);
 		} else {
-			traces = metamodelAdapter.getConnectedElements(selectedObject, traceModel, selectedRelationshipTypes);
+			traces = metamodelAdapter.getConnectedElements(selectedObject, traceModel, selectedRelationshipTypes,
+					ReverseLinkDirectionHandler.isReverseLinkDirection());
 		}
 		if (DisplayInternalLinksHandler.areInternalLinksShown() && ToggleTransitivityHandler.isTraceViewTransitive()) {
 			EObject previousElement = SelectRelationshipsHandler.getPreviousElement();
diff --git a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/handlers/ReverseLinkDirectionHandler.java b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/handlers/ReverseLinkDirectionHandler.java
new file mode 100644
index 0000000..fc1aa9b
--- /dev/null
+++ b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/handlers/ReverseLinkDirectionHandler.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2016, 2022 Chalmers | University of Gothenburg, rt-labs and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ *  
+ * SPDX-License-Identifier: EPL-2.0
+ *  
+ * Contributors:
+ *      Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
+ *      Chalmers | University of Gothenburg - additional features, updated API
+ *******************************************************************************/
+package org.eclipse.capra.ui.plantuml.handlers;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+/**
+ * Toggles between showing incoming and outgoing traceability links
+ * 
+ * @author Jan-Philipp Steghöfer
+ */
+public class ReverseLinkDirectionHandler extends AbstractHandler {
+
+	private static final String REVERSE_DIRECTION_PREFERENCE_NODE = "reverseDirection";
+	private static final String REVERSE_DIRECTION_PREFERENCE = "org.eclipse.capra.ui.plantuml.reverseLinkDirection";
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Command command = event.getCommand();
+		boolean oldValue = HandlerUtil.toggleCommandState(command);
+		setReverseLinkDirection(!oldValue);
+		return null;
+	}
+
+	/**
+	 * Checks whether instead of outcoming links, ingoing links should be shown.
+	 * 
+	 * @return {@code true} if incoming links should be shown, {@code false}
+	 *         otherwise
+	 */
+	public static boolean isReverseLinkDirection() {
+		Preferences reverseDirection = getPreference();
+		return reverseDirection.getBoolean("option", false);
+	}
+
+	private static Preferences getPreference() {
+		Preferences preferences = InstanceScope.INSTANCE.getNode(REVERSE_DIRECTION_PREFERENCE);
+		return preferences.node(REVERSE_DIRECTION_PREFERENCE_NODE);
+	}
+
+	/**
+	 * Sets whether the instead of outcoming links, ingoing links should be shown.
+	 * 
+	 * @param value {@code true} if incoming links should be shown, {@code false}
+	 *              otherwise
+	 * 
+	 */
+	public static void setReverseLinkDirection(boolean value) {
+		Preferences reverseLinkDirection = getPreference();
+		reverseLinkDirection.putBoolean("option", value);
+
+		try {
+			// forces the application to save the preferences
+			reverseLinkDirection.flush();
+		} catch (BackingStoreException e) {
+			e.printStackTrace();
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/views/CapraPlantUmlView.java b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/views/CapraPlantUmlView.java
index 7d7a56f..21756fe 100644
--- a/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/views/CapraPlantUmlView.java
+++ b/bundles/org.eclipse.capra.ui.plantuml/src/org/eclipse/capra/ui/plantuml/views/CapraPlantUmlView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2016, 2019 Chalmers | University of Gothenburg, rt-labs and others.
+ * Copyright (c) 2016, 2022 Chalmers | University of Gothenburg, rt-labs and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.capra.ui.plantuml.views;
 
+import org.eclipse.capra.ui.plantuml.handlers.ReverseLinkDirectionHandler;
 import org.eclipse.capra.ui.plantuml.handlers.ToggleDisplayGraphHandler;
 import org.eclipse.capra.ui.plantuml.handlers.ToggleLockDiagramHandler;
 import org.eclipse.capra.ui.plantuml.handlers.ToggleTransitivityHandler;
@@ -41,13 +42,16 @@
 		}
 		Command displayGraph = cmdService.getCommand("org.eclipse.capra.ui.plantuml.displayGraph");
 		if (displayGraph != null) {
-			displayGraph.getState(COMMANDS_TOGGLE_STATE)
-					.setValue(ToggleDisplayGraphHandler.isDisplayGraph());
+			displayGraph.getState(COMMANDS_TOGGLE_STATE).setValue(ToggleDisplayGraphHandler.isDisplayGraph());
 		}
 		Command lockDiagram = cmdService.getCommand("org.eclipse.capra.ui.plantuml.lockDiagram");
 		if (lockDiagram != null) {
-			lockDiagram.getState(COMMANDS_TOGGLE_STATE)
-					.setValue(ToggleLockDiagramHandler.isLockDiagram());
+			lockDiagram.getState(COMMANDS_TOGGLE_STATE).setValue(ToggleLockDiagramHandler.isLockDiagram());
+		}
+		Command reverseLinkDirection = cmdService.getCommand("org.eclipse.capra.ui.plantuml.reverseLinkDirection");
+		if (reverseLinkDirection != null) {
+			reverseLinkDirection.getState(COMMANDS_TOGGLE_STATE)
+					.setValue(ReverseLinkDirectionHandler.isReverseLinkDirection());
 		}
 
 	}
