diff --git a/src/core/layertree/qgslayertreemodel.cpp b/src/core/layertree/qgslayertreemodel.cpp
index e18f5130bcd..14099eaf8bc 100644
--- a/src/core/layertree/qgslayertreemodel.cpp
+++ b/src/core/layertree/qgslayertreemodel.cpp
@@ -330,7 +330,13 @@ QVariant QgsLayerTreeModel::data( const QModelIndex &index, int role ) const
parts << QString();
}
- parts << "" + layer->publicSource().toHtmlEscaped() + "";
+ QString source( layer->publicSource() );
+ if ( source.size() > 1024 )
+ {
+ source = source.left( 1023 ) + QStringLiteral( "…" );
+ }
+
+ parts << "" + source.toHtmlEscaped() + "";
return parts.join( QStringLiteral( "
" ) );
}