diff --git a/pcbnew/generators/pcb_tuning_pattern.cpp b/pcbnew/generators/pcb_tuning_pattern.cpp
index e3d02e82ef..04e852213a 100644
--- a/pcbnew/generators/pcb_tuning_pattern.cpp
+++ b/pcbnew/generators/pcb_tuning_pattern.cpp
@@ -504,9 +504,9 @@ protected:
 
     bool initBaseLines( PNS::ROUTER* aRouter, int aPNSLayer, BOARD* aBoard );
 
-    bool removeToBaseline( PNS::ROUTER* aRouter, int aLayer, SHAPE_LINE_CHAIN& aBaseLine );
+    bool removeToBaseline( PNS::ROUTER* aRouter, int aPNSLayer, SHAPE_LINE_CHAIN& aBaseLine );
 
-    bool resetToBaseline( GENERATOR_TOOL* aTool, int aLayer, SHAPE_LINE_CHAIN& aBaseLine,
+    bool resetToBaseline( GENERATOR_TOOL* aTool, int aPNSLayer, SHAPE_LINE_CHAIN& aBaseLine,
                           bool aPrimary );
 
     SHAPE_LINE_CHAIN getOutline() const;
@@ -1029,13 +1029,13 @@ bool PCB_TUNING_PATTERN::initBaseLines( PNS::ROUTER* aRouter, int aPNSLayer, BOA
     return true;
 }
 
-bool PCB_TUNING_PATTERN::removeToBaseline( PNS::ROUTER* aRouter, int aLayer,
+bool PCB_TUNING_PATTERN::removeToBaseline( PNS::ROUTER* aRouter, int aPNSLayer,
                                            SHAPE_LINE_CHAIN& aBaseLine )
 {
     VECTOR2I startSnapPoint, endSnapPoint;
 
     std::optional<PNS::LINE> pnsLine = getPNSLine( aBaseLine.CPoint( 0 ), aBaseLine.CPoint( -1 ),
-                                                   aRouter, aLayer, startSnapPoint, endSnapPoint );
+                                                   aRouter, aPNSLayer, startSnapPoint, endSnapPoint );
 
     wxCHECK( pnsLine, false );
 
@@ -1073,7 +1073,7 @@ void PCB_TUNING_PATTERN::Remove( GENERATOR_TOOL* aTool, BOARD* aBoard, BOARD_COM
     aTool->Router()->SyncWorld();
 
     PNS::ROUTER* router = aTool->Router();
-    int          layer = GetLayer();
+    PNS_KICAD_IFACE* iface = aTool->GetInterface();
 
     // Ungroup first so that undo works
     if( !GetItems().empty() )
@@ -1090,14 +1090,17 @@ void PCB_TUNING_PATTERN::Remove( GENERATOR_TOOL* aTool, BOARD* aBoard, BOARD_COM
 
     aTool->ClearRouterChanges();
 
+    // PNS layers and PCB layers have different coding. so convert PCB layer to PNS layer
+    int pnslayer = iface->GetPNSLayerFromBoardLayer( GetLayer() );
+
     if( baselineValid() )
     {
         bool success = true;
 
-        success &= removeToBaseline( router, layer, *m_baseLine );
+        success &= removeToBaseline( router, pnslayer, *m_baseLine );
 
         if( m_tuningMode == DIFF_PAIR )
-            success &= removeToBaseline( router, layer, *m_baseLineCoupled );
+            success &= removeToBaseline( router, pnslayer, *m_baseLineCoupled );
 
         if( !success )
             recoverBaseline( router );
@@ -1202,7 +1205,7 @@ bool PCB_TUNING_PATTERN::recoverBaseline( PNS::ROUTER* aRouter )
 }
 
 
-bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aLayer,
+bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aPNSLayer,
                                           SHAPE_LINE_CHAIN& aBaseLine, bool aPrimary )
 {
     PNS_KICAD_IFACE* iface = aTool->GetInterface();
@@ -1211,7 +1214,7 @@ bool PCB_TUNING_PATTERN::resetToBaseline( GENERATOR_TOOL* aTool, int aLayer,
     VECTOR2I         startSnapPoint, endSnapPoint;
 
     std::optional<PNS::LINE> pnsLine = getPNSLine( aBaseLine.CPoint( 0 ), aBaseLine.CPoint( -1 ),
-                                                   router, aLayer, startSnapPoint, endSnapPoint );
+                                                   router, aPNSLayer, startSnapPoint, endSnapPoint );
 
     if( !pnsLine )
     {