diff --git a/src/modules/i3.cpp b/src/modules/i3.cpp
index 1c636f05..5df0106a 100644
--- a/src/modules/i3.cpp
+++ b/src/modules/i3.cpp
@@ -114,6 +114,13 @@ namespace modules {
   }
 
   bool i3_module::update() {
+    /*
+     * update only populates m_workspaces and those are only needed when
+     * <label-state> appears in the format
+     */
+    if (!m_formatter->has(TAG_LABEL_STATE)) {
+      return true;
+    }
     m_workspaces.clear();
     i3_util::connection_t ipc;