diff --git a/src/tracks/ui/TimeShiftHandle.cpp b/src/tracks/ui/TimeShiftHandle.cpp
index 0b94745c55d389aa137c017bd18c45e2bab7b040..3695bbcfbb199a02525e794e8d845453898926da 100644
--- a/src/tracks/ui/TimeShiftHandle.cpp
+++ b/src/tracks/ui/TimeShiftHandle.cpp
@@ -363,7 +363,10 @@ void ClipMoveState::Init(
                for ( auto pTrack2 : group ) {
                   if (pTrack2 == &track)
                      continue;
-                  
+                  if (!pTrack2->IsLeader())
+                     continue;
+
+                  // shifters maps from leader tracks only
                   auto &shifter2 = *shifters[pTrack2];
                   auto size = shifter2.MovingIntervals().size();
                   shifter2.SelectInterval(*interval);
@@ -832,8 +835,10 @@ UIHandle::Result TimeShiftHandle::Drag
    const wxMouseEvent &event = evt.event;
    auto &viewInfo = ViewInfo::Get( *pProject );
 
+   auto &trackList = TrackList::Get(*pProject);
    ChannelView *trackView = dynamic_cast<ChannelView*>(evt.pCell.get());
-   Track *track = trackView ? trackView->FindTrack().get() : nullptr;
+   Track *track =
+      *trackList.FindLeader(trackView ? trackView->FindTrack().get() : nullptr);
 
    // Uncommenting this permits drag to continue to work even over the controls area
    /*
@@ -853,9 +858,6 @@ UIHandle::Result TimeShiftHandle::Drag
    if (!pTrack)
       return RefreshCode::RefreshNone;
 
-
-   auto &trackList = TrackList::Get( *pProject );
-
    // GM: slide now implementing snap-to
    // samples functionality based on sample rate.