diff --git a/resources/qml/CommunitiesList.qml b/resources/qml/CommunitiesList.qml
index 68175cea68e571ff9fc217f355de8b294516a51d..46e24566057db318f30c80dce36bfc4adcebe176 100644
--- a/resources/qml/CommunitiesList.qml
+++ b/resources/qml/CommunitiesList.qml
@@ -131,7 +131,7 @@ Page {
 
                 Item {
                     Layout.preferredWidth: fontMetrics.lineSpacing
-                    visible: !communitySidebar.collapsed && !model.collapsible
+                    visible: !communitySidebar.collapsed && !model.collapsible && Communities.containsSubspaces
                 }
 
                 Avatar {
diff --git a/src/timeline/CommunitiesModel.cpp b/src/timeline/CommunitiesModel.cpp
index 0db3b0b01752d99d8c4cb663060ea18f5387452a..fb8aac24c625f16bd5c14fa2bdfd30e14684db2e 100644
--- a/src/timeline/CommunitiesModel.cpp
+++ b/src/timeline/CommunitiesModel.cpp
@@ -280,6 +280,7 @@ CommunitiesModel::initializeSidebar()
 
     emit tagsChanged();
     emit hiddenTagsChanged();
+    emit containsSubspacesChanged();
 }
 
 void
diff --git a/src/timeline/CommunitiesModel.h b/src/timeline/CommunitiesModel.h
index 21d24829d3f5103352117e81b0e0ad860548ac00..5191b239c6ed382b07e0a19d89436317e7e31ad8 100644
--- a/src/timeline/CommunitiesModel.h
+++ b/src/timeline/CommunitiesModel.h
@@ -33,6 +33,7 @@ class CommunitiesModel : public QAbstractListModel
                  currentTagIdChanged RESET resetCurrentTagId)
     Q_PROPERTY(QStringList tags READ tags NOTIFY tagsChanged)
     Q_PROPERTY(QStringList tagsWithDefault READ tagsWithDefault NOTIFY tagsChanged)
+    Q_PROPERTY(bool containsSubspaces READ containsSubspaces NOTIFY containsSubspacesChanged)
 
 public:
     enum Roles
@@ -103,6 +104,14 @@ public:
     QVariant data(const QModelIndex &index, int role) const override;
     bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
 
+    bool containsSubspaces() const
+    {
+        for (const auto &e : spaceOrder_.tree)
+            if (e.depth > 0)
+                return true;
+        return false;
+    }
+
 public slots:
     void initializeSidebar();
     void sync(const mtx::responses::Sync &sync_);
@@ -131,6 +140,7 @@ signals:
     void currentTagIdChanged(QString tagId);
     void hiddenTagsChanged();
     void tagsChanged();
+    void containsSubspacesChanged();
 
 private:
     QStringList tags_;