diff --git a/opentech/apply/funds/forms.py b/opentech/apply/funds/forms.py
index 192dbfba3acbefeaf36d0856b78bbdaf62a2d34e..91911a9858bf01e30272c27b1c3e7cb1791dfcc2 100644
--- a/opentech/apply/funds/forms.py
+++ b/opentech/apply/funds/forms.py
@@ -27,6 +27,9 @@ class ProgressSubmissionForm(forms.ModelForm):
         self.user = kwargs.pop('user')
         super().__init__(*args, **kwargs)
         choices = list(self.instance.get_actions_for_user(self.user))
+        # Sort the transitions by the order they are listed.
+        sort_by = list(self.instance.phase.transitions.keys())
+        choices.sort(key=lambda k: sort_by.index(k[0]))
         action_field = self.fields['action']
         action_field.choices = choices
         self.should_show = bool(choices)
diff --git a/opentech/apply/funds/workflow.py b/opentech/apply/funds/workflow.py
index 8835492298d1a91258b437fb362612e77c1cfee8..6b2bffb1dd6428401449cd09a9d361d574167a49 100644
--- a/opentech/apply/funds/workflow.py
+++ b/opentech/apply/funds/workflow.py
@@ -192,11 +192,11 @@ SingleStageDefinition = [
     {
         INITIAL_STATE: {
             'transitions': {
+                'more_info': 'Request More Information',
                 'internal_review': 'Open Review',
+                'determination': 'Ready For Determination',
                 'rejected': 'Dismiss',
-                'more_info': 'Request More Information',
                 'accepted': 'Accept',
-                'determination': 'Ready For Determination',
             },
             'display': 'Screening',
             'public': 'Application Received',
@@ -210,9 +210,9 @@ SingleStageDefinition = [
                     'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN},
                     'method': 'create_revision',
                 },
+                'determination': 'Ready For Determination',
                 'accepted': 'Accept',
                 'rejected': 'Dismiss',
-                'determination': 'Ready For Determination',
             },
             'display': 'More information required',
             'stage': Request,
@@ -222,8 +222,8 @@ SingleStageDefinition = [
     {
         'internal_review': {
             'transitions': {
-                INITIAL_STATE: 'Screening (back)',
                 'post_review_discussion': 'Close Review',
+                INITIAL_STATE: 'Screening (back)',
             },
             'display': 'Internal Review',
             'public': 'OTF Review',
@@ -234,11 +234,11 @@ SingleStageDefinition = [
     {
         'post_review_discussion': {
             'transitions': {
+                'post_review_more_info': 'Request More Information',
+                'determination': 'Ready For Determination',
                 'internal_review': 'Open Review (back)',
                 'accepted': 'Accept',
                 'rejected': 'Dismiss',
-                'determination': 'Ready For Determination',
-                'post_review_more_info': 'Request More Information',
             },
             'display': 'Ready For Discussion',
             'stage': Request,
@@ -251,9 +251,9 @@ SingleStageDefinition = [
                     'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN},
                     'method': 'create_revision',
                 },
+                'determination': 'Ready For Determination',
                 'accepted': 'Accept',
                 'rejected': 'Dismiss',
-                'determination': 'Ready For Determination',
             },
             'display': 'More information required',
             'stage': Request,
@@ -290,10 +290,10 @@ SingleStageExternalDefinition = [
     {
         INITIAL_STATE: {
             'transitions': {
-                'ext_internal_review': 'Open Review',
-                'ext_rejected': 'Dismiss',
                 'ext_more_info': 'Request More Information',
+                'ext_internal_review': 'Open Review',
                 'ext_determination': 'Ready For Determination',
+                'ext_rejected': 'Dismiss',
             },
             'display': 'Screening',
             'public': 'Application Received',
@@ -316,8 +316,8 @@ SingleStageExternalDefinition = [
     {
         'ext_internal_review': {
             'transitions': {
-                INITIAL_STATE: 'Screening (back)',
                 'ext_post_review_discussion': 'Close Review',
+                INITIAL_STATE: 'Screening (back)',
             },
             'display': 'Internal Review',
             'public': 'OTF Review',
@@ -328,11 +328,11 @@ SingleStageExternalDefinition = [
     {
         'ext_post_review_discussion': {
             'transitions': {
-                'ext_internal_review': 'Open Internal Review (back)',
-                'ext_external_review': 'Open AC review',
-                'ext_rejected': 'Dismiss',
                 'ext_post_review_more_info': 'Request More Information',
+                'ext_external_review': 'Open AC review',
                 'ext_determination': 'Ready For Determination',
+                'ext_internal_review': 'Open Internal Review (back)',
+                'ext_rejected': 'Dismiss',
             },
             'display': 'Ready For Discussion',
             'stage': RequestExt,
@@ -354,8 +354,8 @@ SingleStageExternalDefinition = [
     {
         'ext_external_review': {
             'transitions': {
-                'ext_post_review_discussion': 'Ready For Discussion (back)',
                 'ext_post_external_review_discussion': 'Close Review',
+                'ext_post_review_discussion': 'Ready For Discussion (back)',
             },
             'display': 'Advisory Council Review',
             'stage': RequestExt,
@@ -365,11 +365,11 @@ SingleStageExternalDefinition = [
     {
         'ext_post_external_review_discussion': {
             'transitions': {
+                'ext_post_external_review_more_info': 'Request More Information',
+                'ext_determination': 'Ready For Determination',
                 'ext_external_review': 'Open AC review (back)',
                 'ext_accepted': 'Accept',
                 'ext_rejected': 'Dismiss',
-                'ext_post_external_review_more_info': 'Request More Information',
-                'ext_determination': 'Ready For Determination',
             },
             'display': 'Ready For Discussion',
             'stage': RequestExt,
@@ -419,12 +419,12 @@ SingleStageCommunityDefinition = [
     {
         INITIAL_STATE: {
             'transitions': {
-                'com_internal_review': 'Open Review',
+                'com_more_info': 'Request More Information',
                 'com_open_call': 'Open Call (public)',
+                'com_internal_review': 'Open Review',
                 'com_community_review': 'Open Community Review',
-                'com_rejected': 'Dismiss',
-                'com_more_info': 'Request More Information',
                 'com_determination': 'Ready For Determination',
+                'com_rejected': 'Dismiss',
             },
             'display': 'Screening',
             'public': 'Application Received',
@@ -456,9 +456,9 @@ SingleStageCommunityDefinition = [
     {
         'com_internal_review': {
             'transitions': {
-                INITIAL_STATE: 'Screening (back)',
                 'com_community_review': 'Open Community Review',
                 'com_post_review_discussion': 'Close Review',
+                INITIAL_STATE: 'Screening (back)',
                 'com_rejected': 'Dismiss',
             },
             'display': 'Internal Review',
@@ -468,8 +468,8 @@ SingleStageCommunityDefinition = [
         },
         'com_community_review': {
             'transitions': {
-                'com_internal_review': 'Open Internal Review (back)',
                 'com_post_review_discussion': 'Close Review',
+                'com_internal_review': 'Open Internal Review (back)',
                 'com_rejected': 'Dismiss',
             },
             'display': 'Community Review',
@@ -481,11 +481,11 @@ SingleStageCommunityDefinition = [
     {
         'com_post_review_discussion': {
             'transitions': {
-                'com_internal_review': 'Open Internal Review (back)',
-                'com_external_review': 'Open AC review',
-                'com_rejected': 'Dismiss',
                 'com_post_review_more_info': 'Request More Information',
+                'com_external_review': 'Open AC review',
                 'com_determination': 'Ready For Determination',
+                'com_internal_review': 'Open Internal Review (back)',
+                'com_rejected': 'Dismiss',
             },
             'display': 'Ready For Discussion',
             'stage': RequestCom,
@@ -507,8 +507,8 @@ SingleStageCommunityDefinition = [
     {
         'com_external_review': {
             'transitions': {
-                'com_post_review_discussion': 'Ready For Discussion (back)',
                 'com_post_external_review_discussion': 'Close Review',
+                'com_post_review_discussion': 'Ready For Discussion (back)',
             },
             'display': 'Advisory Council Review',
             'stage': RequestCom,
@@ -518,11 +518,11 @@ SingleStageCommunityDefinition = [
     {
         'com_post_external_review_discussion': {
             'transitions': {
+                'com_post_external_review_more_info': 'Request More Information',
+                'com_determination': 'Ready For Determination',
                 'com_external_review': 'Open AC review (back)',
                 'com_accepted': 'Accept',
                 'com_rejected': 'Dismiss',
-                'com_post_external_review_more_info': 'Request More Information',
-                'com_determination': 'Ready For Determination',
             },
             'display': 'Ready For Discussion',
             'stage': RequestCom,
@@ -572,11 +572,11 @@ DoubleStageDefinition = [
     {
         INITIAL_STATE: {
             'transitions': {
-                'concept_internal_review': 'Open Review',
-                'concept_rejected': 'Dismiss',
                 'concept_more_info': 'Request More Information',
-                'invited_to_proposal': 'Invite to Proposal',
+                'concept_internal_review': 'Open Review',
                 'concept_determination': 'Ready For Preliminary Determination',
+                'invited_to_proposal': 'Invite to Proposal',
+                'concept_rejected': 'Dismiss',
             },
             'display': 'Screening',
             'public': 'Concept Note Received',
@@ -602,8 +602,8 @@ DoubleStageDefinition = [
     {
         'concept_internal_review': {
             'transitions': {
-                INITIAL_STATE: 'Screening (back)',
                 'concept_review_discussion': 'Close Review',
+                INITIAL_STATE: 'Screening (back)',
                 'invited_to_proposal': 'Invite to Proposal',
             },
             'display': 'Internal Review',
@@ -615,11 +615,11 @@ DoubleStageDefinition = [
     {
         'concept_review_discussion': {
             'transitions': {
+                'concept_review_more_info': 'Request More Information',
+                'concept_determination': 'Ready For Preliminary Determination',
                 'concept_internal_review': 'Open Review (back)',
                 'invited_to_proposal': 'Invite to Proposal',
                 'concept_rejected': 'Dismiss',
-                'concept_review_more_info': 'Request More Information',
-                'concept_determination': 'Ready For Preliminary Determination',
             },
             'display': 'Ready For Discussion',
             'stage': Concept,
@@ -642,8 +642,8 @@ DoubleStageDefinition = [
     {
         'concept_determination': {
             'transitions': {
-                'invited_to_proposal': 'Invite to Proposal',
                 'concept_review_more_info': 'Request More Information',
+                'invited_to_proposal': 'Invite to Proposal',
                 'concept_rejected': 'Dismiss',
             },
             'display': 'Ready for Preliminary Determination',
@@ -676,9 +676,9 @@ DoubleStageDefinition = [
         'draft_proposal': {
             'transitions': {
                 'proposal_discussion': {'display': 'Submit', 'permissions': {UserPermissions.APPLICANT}, 'method': 'create_revision'},
-                'proposal_rejected': 'Dismiss',
                 'external_review': 'Open AC review',
                 'proposal_determination': 'Ready For Final Determination',
+                'proposal_rejected': 'Dismiss',
             },
             'display': 'Invited for Proposal',
             'stage': Proposal,
@@ -688,11 +688,11 @@ DoubleStageDefinition = [
     {
         'proposal_discussion': {
             'transitions': {
-                'proposal_internal_review': 'Open Review',
-                'proposal_rejected': 'Dismiss',
                 'proposal_more_info': 'Request More Information',
-                'proposal_determination': 'Ready For Final Determination',
+                'proposal_internal_review': 'Open Review',
                 'external_review': 'Open AC review',
+                'proposal_determination': 'Ready For Final Determination',
+                'proposal_rejected': 'Dismiss',
             },
             'display': 'Proposal Received',
             'stage': Proposal,
@@ -705,9 +705,9 @@ DoubleStageDefinition = [
                     'permissions': {UserPermissions.APPLICANT, UserPermissions.STAFF, UserPermissions.LEAD, UserPermissions.ADMIN},
                     'method': 'create_revision',
                 },
-                'proposal_rejected': 'Dismiss',
-                'proposal_determination': 'Ready For Final Determination',
                 'external_review': 'Open AC review',
+                'proposal_determination': 'Ready For Final Determination',
+                'proposal_rejected': 'Dismiss',
             },
             'display': 'More information required',
             'stage': Proposal,
@@ -717,8 +717,8 @@ DoubleStageDefinition = [
     {
         'proposal_internal_review': {
             'transitions': {
-                'proposal_discussion': 'Proposal Received (back)',
                 'post_proposal_review_discussion': 'Close Review',
+                'proposal_discussion': 'Proposal Received (back)',
             },
             'display': 'Internal Review',
             'public': 'OTF Review',
@@ -729,11 +729,11 @@ DoubleStageDefinition = [
     {
         'post_proposal_review_discussion': {
             'transitions': {
-                'proposal_internal_review': 'Open Internal Review (back)',
+                'post_proposal_review_more_info': 'Request More Information',
                 'external_review': 'Open AC review',
                 'proposal_determination': 'Ready For Final Determination',
+                'proposal_internal_review': 'Open Internal Review (back)',
                 'proposal_rejected': 'Dismiss',
-                'post_proposal_review_more_info': 'Request More Information',
             },
             'display': 'Ready For Discussion',
             'stage': Proposal,
@@ -756,8 +756,8 @@ DoubleStageDefinition = [
     {
         'external_review': {
             'transitions': {
-                'post_proposal_review_discussion': 'Ready For Discussion (back)',
                 'post_external_review_discussion': 'Close Review',
+                'post_proposal_review_discussion': 'Ready For Discussion (back)',
             },
             'display': 'Advisory Council Review',
             'stage': Proposal,
@@ -767,11 +767,11 @@ DoubleStageDefinition = [
     {
         'post_external_review_discussion': {
             'transitions': {
+                'post_external_review_more_info': 'Request More Information',
+                'proposal_determination': 'Ready For Final Determination',
                 'external_review': 'Open AC review (back)',
                 'proposal_accepted': 'Accept',
                 'proposal_rejected': 'Dismiss',
-                'proposal_determination': 'Ready For Final Determination',
-                'post_external_review_more_info': 'Request More Information',
             },
             'display': 'Ready For Discussion',
             'stage': Proposal,