diff --git a/Trajectories/create_traj_lists.py b/Trajectories/create_traj_lists.py
old mode 100644
new mode 100755
index c1e4bb754398ae6854341290775b0add8757a3f1..c1cf3fcf51fe23eb60fb46a048d2c2c2c980af1d
--- a/Trajectories/create_traj_lists.py
+++ b/Trajectories/create_traj_lists.py
@@ -28,9 +28,11 @@ def create_traj_list(
         else:
             traj_vert_ind[traj_prop[n]] = [n]
 
-    traj_vert_ind = [traj_vert_ind[t] for t in range(len(traj_vert_ind))]
-    # An element of traj_vert_ind is a trajectory, represented by a list
-    # of vertex indices.
+    traj_vert_ind = [traj_vert_ind[t] for t in sorted(traj_vert_ind)]
+    # sorted(traj_vert_ind) instead of range(len(traj_vert_ind))
+    # because create_traj_list can be called for a component of the
+    # graph. An element of traj_vert_ind is a trajectory, represented
+    # by a list of vertex indices.
 
     print("Number of trajectories: ", len(traj_vert_ind))
 
@@ -87,3 +89,28 @@ def create_traj_list(
         )
 
     print("Created expanded_traj.json.")
+
+
+if __name__ == "__main__":
+    import sys
+
+    import graph_tool
+    from graph_tool import topology
+
+    if len(sys.argv) != 2:
+        sys.exit("Required argument: input-graph")
+
+    g = graph_tool.load_graph(sys.argv[1])
+    print("Input graph:")
+    print("Number of vertices:", g.num_vertices())
+    print("Number of edges:", g.num_edges())
+    print("Internal properties:")
+    g.list_properties()
+    create_traj_list(
+        topology.topological_sort(g),
+        g.vp["traj"],
+        g.vp["name"],
+        g.vp["inst_eddies"],
+        g.gp["orientation"],
+        g.gp["e_overestim"],
+    )