diff --git a/keanu-project/src/main/java/io/improbable/keanu/network/BayesianNetwork.java b/keanu-project/src/main/java/io/improbable/keanu/network/BayesianNetwork.java
index <HASH>..<HASH> 100644
--- a/keanu-project/src/main/java/io/improbable/keanu/network/BayesianNetwork.java
+++ b/keanu-project/src/main/java/io/improbable/keanu/network/BayesianNetwork.java
@@ -211,7 +211,7 @@ public class BayesianNetwork {
     }
 
     public void save(ProtobufWriter protobufWriter) throws IOException {
-        for (Vertex vertex : vertices) {
+        for (Vertex vertex : TopologicalSort.sort(vertices)) {
             vertex.saveTo(protobufWriter);
         }
     }
Save the Vertices in Topological Order to simplify load