diff --git a/eeschema/edit_label.cpp b/eeschema/edit_label.cpp
index 110d2a0af1..47d4be3d34 100644
--- a/eeschema/edit_label.cpp
+++ b/eeschema/edit_label.cpp
@@ -162,7 +162,9 @@ void SCH_EDIT_FRAME::ConvertTextType( SCH_TEXT* aText, KICAD_T aType )
     if( selected )
         m_toolManager->RunAction( EE_ACTIONS::addItemToSel, true, newtext );
 
-    delete aText;
+    // Otherwise, pointer is owned by the undo stack
+    if( aText->IsNew() )
+        delete aText;
 
     OnModify();
 }