--- workflow/workflow.module	2010-10-25 04:13:48.000000000 +0200
+++ workflow.new/workflow.module	2010-12-22 11:04:30.829697680 +0100
@@ -1095,7 +1095,7 @@
     }
   }
   else {
-    $result = db_query("SELECT ws.sid, ws.state, w.name FROM {workflow_states} ws INNER JOIN {workflows} w ON ws.wid = w.wid WHERE status = 1 ORDER BY sid");
+    $result = db_query("SELECT ws.sid, ws.state, w.name FROM {workflow_states} ws INNER JOIN {workflows} w ON ws.wid = w.wid WHERE status = 1 ORDER BY weight, sid");
     while ($data = db_fetch_object($result)) {
       $states[$data->sid] = check_plain(t($data->name)) .': '. check_plain(t($data->state));
     }
@@ -1644,4 +1644,4 @@
       db_query("UPDATE {workflow_node_history} SET uid = 0 WHERE uid = %d", $account->uid);
     break;
   }
-}
\ No newline at end of file
+}
