diff --git a/pcbnew/pad.cpp b/pcbnew/pad.cpp
index dbbdc4a925..7e9f7a100b 100644
--- a/pcbnew/pad.cpp
+++ b/pcbnew/pad.cpp
@@ -562,8 +562,8 @@ std::shared_ptr<SHAPE> PAD::GetEffectiveShape( PCB_LAYER_ID aLayer, FLASHING fla
 
     aLayer = Padstack().EffectiveLayerFor( aLayer );
 
-    wxASSERT_MSG( m_effectiveShapes.contains( aLayer ) && m_effectiveShapes.at( aLayer ),
-                  wxT( "Null shape in PAD::GetEffectiveShape!" ) );
+    wxCHECK_MSG( m_effectiveShapes.contains( aLayer ) && m_effectiveShapes.at( aLayer ), nullptr,
+                 wxT( "Null shape in PAD::GetEffectiveShape!" ) );
 
     return m_effectiveShapes[aLayer];
 }
diff --git a/pcbnew/pad.h b/pcbnew/pad.h
index ec2f531132..0fc3df7058 100644
--- a/pcbnew/pad.h
+++ b/pcbnew/pad.h
@@ -431,7 +431,7 @@ public:
         m_polyDirty[ERROR_OUTSIDE] = true;
     }
 
-    void SetLayerSet( const LSET& aLayers ) override   { m_padStack.SetLayerSet( aLayers ); }
+    void SetLayerSet( const LSET& aLayers ) override   { m_padStack.SetLayerSet( aLayers ); SetDirty(); }
     LSET GetLayerSet() const override           { return m_padStack.LayerSet(); }
 
     void SetAttribute( PAD_ATTRIB aAttribute );