diff --git a/pagelayout_editor/tools/pl_drawing_tools.cpp b/pagelayout_editor/tools/pl_drawing_tools.cpp
index 4992e96815..18b6acee21 100644
--- a/pagelayout_editor/tools/pl_drawing_tools.cpp
+++ b/pagelayout_editor/tools/pl_drawing_tools.cpp
@@ -284,10 +284,18 @@ int PL_DRAWING_TOOLS::DrawShape( const TOOL_EVENT& aEvent )
 
                 item = dataItem->GetDrawItems()[0];
                 item->SetFlags( IS_NEW );
-                m_selectionTool->AddItemToSel( item );
+
+                // Select the item but don't inform other tools (to prevent the Properties
+                // panel from updating the item before it has been placed)
+                m_selectionTool->AddItemToSel( item, true );
             }
             else    // finish drawing
             {
+                // Now we re-select and inform other tools, so that the Properties panel
+                // is updated.
+                m_toolMgr->RunAction( PL_ACTIONS::clearSelection, true );
+                m_selectionTool->AddItemToSel( item, false );
+
                 item->ClearEditFlags();
                 item = nullptr;
                 m_toolMgr->RunAction( ACTIONS::activatePointEditor );