diff --git a/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp b/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp
index 6eb9750758c6..4b54c5bfc8fb 100644
--- a/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp
+++ b/src/gui/tiledscene/qgstiledsceneconnectiondialog.cpp
@@ -17,6 +17,8 @@
 #include "moc_qgstiledsceneconnectiondialog.cpp"
 #include "qgstiledsceneconnection.h"
 #include "qgsgui.h"
+#include "qgssettings.h"
+
 #include <QMessageBox>
 #include <QPushButton>
 
@@ -37,6 +39,7 @@ QgsTiledSceneConnectionDialog::QgsTiledSceneConnectionDialog( QWidget *parent )
 void QgsTiledSceneConnectionDialog::setConnection( const QString &name, const QString &uri )
 {
   mEditName->setText( name );
+  mOriginalConnectionName = name;
 
   const QgsTiledSceneProviderConnection::Data conn = QgsTiledSceneProviderConnection::decodedUri( uri );
   mEditUrl->setText( conn.url );
@@ -73,6 +76,16 @@ void QgsTiledSceneConnectionDialog::updateOkButtonState()
 
 void QgsTiledSceneConnectionDialog::accept()
 {
+  const QString newConnectionName = mEditName->text();
+
+  // on rename delete original entry first
+  if ( !mOriginalConnectionName.isNull() && mOriginalConnectionName != newConnectionName )
+  {
+    QgsSettings settings;
+    QgsTiledSceneProviderConnection( QString() ).remove( mOriginalConnectionName );
+    settings.sync();
+  }
+
   QDialog::accept();
 }
 
diff --git a/src/gui/tiledscene/qgstiledsceneconnectiondialog.h b/src/gui/tiledscene/qgstiledsceneconnectiondialog.h
index 8c22b91c422d..038a08c2c1b9 100644
--- a/src/gui/tiledscene/qgstiledsceneconnectiondialog.h
+++ b/src/gui/tiledscene/qgstiledsceneconnectiondialog.h
@@ -39,6 +39,9 @@ class QgsTiledSceneConnectionDialog : public QDialog, public Ui::QgsTiledSceneCo
 
   private slots:
     void updateOkButtonState();
+
+  private:
+    QString mOriginalConnectionName; //store initial name to delete entry in case of rename
 };
 
 ///@endcond