diff --git a/lib/structs/pushrules.cpp b/lib/structs/pushrules.cpp
index 9a77de978cc43109ff6a1ca100676b4f5b98fb27..564a50f701deab21acca655a9e12986a811864bf 100644
--- a/lib/structs/pushrules.cpp
+++ b/lib/structs/pushrules.cpp
@@ -98,6 +98,7 @@ to_json(nlohmann::json &obj, const PushRule &rule)
 void
 from_json(const nlohmann::json &obj, PushRule &rule)
 {
+    rule.rule_id  = obj.value("rule_id", "");
     rule.default_ = obj.value("default", false);
     rule.enabled  = obj.value("enabled", true);
 
diff --git a/tests/pushrules.cpp b/tests/pushrules.cpp
index 0c16d13a1264f13db7b7eef58768422f38c6eddc..28619a7dae37d2902ece92566a0259af6d9e45df 100644
--- a/tests/pushrules.cpp
+++ b/tests/pushrules.cpp
@@ -33,7 +33,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "pattern": "alice",
         "rule_id": ".m.rule.contains_user_name"
       }
@@ -43,7 +42,6 @@ TEST(Pushrules, GlobalRuleset)
         "actions": [
           "dont_notify"
         ],
-        "conditions": [],
         "default": true,
         "enabled": false,
         "rule_id": ".m.rule.master"
@@ -60,7 +58,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.suppress_notices"
       }
     ],
@@ -87,7 +84,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.call"
       },
       {
@@ -107,7 +103,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.contains_display_name"
       },
       {
@@ -134,7 +129,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.room_one_to_one"
       },
       {
@@ -167,7 +161,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.invite_for_me"
       },
       {
@@ -186,7 +179,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.member_event"
       },
       {
@@ -205,7 +197,6 @@ TEST(Pushrules, GlobalRuleset)
           }
         ],
         "default": true,
-        "enabled": true,
         "rule_id": ".m.rule.message"
       }
     ]
@@ -227,6 +218,8 @@ TEST(Pushrules, GlobalRuleset)
     EXPECT_EQ(rules.global.sender.size(), 0);
     EXPECT_EQ(rules.global.underride.size(), 6);
     EXPECT_EQ(rules.global.underride[0].conditions.at(0).key, "type");
+    EXPECT_EQ(rules.global.content[0].rule_id, ".m.rule.contains_user_name");
+    EXPECT_EQ(data, json(rules));
 }
 
 TEST(Pushrules, GetGlobalRuleset)