diff --git a/CHANGELOG.md b/CHANGELOG.md
index aa0ef42ba87dcf92bc82690d837609b5e4a12b67..db5c51ad6eeafd5ebe5a66e9b50bc00c1f0cc947 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,4 +20,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed
 
+* #11 - Transaction::GetResultSet() now always returns a valid reference.
+
 ### Security
diff --git a/include/caosdb/transaction.h b/include/caosdb/transaction.h
index 621c6cbd80057c0f97d171f2ffac91e65b77498f..f92cf28f8ed670177629f5534cb9777f25e1fa1b 100644
--- a/include/caosdb/transaction.h
+++ b/include/caosdb/transaction.h
@@ -365,6 +365,10 @@ public:
   [[nodiscard]] inline auto GetStatus() const noexcept -> TransactionStatus { return this->status; }
 
   [[nodiscard]] inline auto GetResultSet() const noexcept -> const ResultSet & {
+    if (!this->result_set) {
+      this->result_set = std::make_unique<MultiResultSet>(
+          std::move(std::vector<std::unique_ptr<Entity>>()));
+    }
     return *(this->result_set.get());
   }