diff --git a/app/dispatcher/default.go b/app/dispatcher/default.go
index 03efd2d2..ea5c8fa1 100644
--- a/app/dispatcher/default.go
+++ b/app/dispatcher/default.go
@@ -263,9 +263,11 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
 		skipRoutePick = content.SkipRoutePick
 	}
 
+	var inTag string
 	if d.router != nil && !skipRoutePick {
 		if route, err := d.router.PickRoute(routing_session.AsRoutingContext(ctx)); err == nil {
 			tag := route.GetOutboundTag()
+			inTag = route.GetInboundTag()
 			if h := d.ohm.GetHandler(tag); h != nil {
 				newError("taking detour [", tag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx))
 				handler = h
@@ -290,7 +292,11 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
 
 	if accessMessage := log.AccessMessageFromContext(ctx); accessMessage != nil {
 		if tag := handler.Tag(); tag != "" {
-			accessMessage.Detour = tag
+			if inTag != "" {
+				accessMessage.Detour = inTag + " -> " + tag
+			} else {
+				accessMessage.Detour = tag
+			}
 		}
 		log.Record(accessMessage)
 	}