diff --git a/src/save.c b/src/save.c
index d68ee83..5b08155 100644
--- a/src/save.c
+++ b/src/save.c
@@ -45,12 +45,12 @@ static int  load_game(char* file);
 /* Save all the game data. */
 static int save_data(xmlTextWriterPtr writer) {
   /* The data itself. */
+  if(diff_save(writer) < 0)             return -1;
   if(player_save(writer) < 0)           return -1;
   if(missions_saveActive(writer) < 0)   return -1;
   if(var_save(writer) < 0)              return -1;
   if(pfaction_save(writer) < 0)         return -1;
   if(hook_save(writer) < 0)             return -1;
-  if(diff_save(writer) < 0)             return -1;
   if(space_sysSave(writer) < 0)         return -1;
   return 0;
 }
@@ -210,12 +210,12 @@ static int load_game(char* file) {
     return -1;
   }
 
+  diff_load(node);
   player_load(node);
   var_load(node);
   missions_loadActive(node);
   pfaction_load(node);
   hook_load(node);
-  diff_load(node);
   space_sysLoad(node);
 
   /* Need to run takeoff hooks since player just "took off". */