--- a/CreatureEdit.cpp
+++ b/CreatureEdit.cpp
@@ -121,7 +121,8 @@
 	res=pickerdlg.DoModal();
 	if(res==IDOK)
 	{
-		res=read_character(pickerdlg.m_picked);
+		res=read_character(pickerdlg.m_picked, &the_creature);
+    m_pModelessPropSheet->RefreshDialog();
     switch(res)
     {
     case -3:
@@ -141,7 +142,6 @@
       break;
     }
     SetWindowText("Edit character: "+itemname);
-    m_pModelessPropSheet->RefreshDialog();
     UpdateData(UD_DISPLAY);
 	}
 }
@@ -155,7 +155,8 @@
 	res=pickerdlg.DoModal();
 	if(res==IDOK)
 	{
-		res=read_creature(pickerdlg.m_picked);
+		res=read_creature(pickerdlg.m_picked, &the_creature);
+    m_pModelessPropSheet->RefreshDialog();
     switch(res)
     {
     case -3:
@@ -175,7 +176,6 @@
       break;
     }
     SetWindowText("Edit creature: "+itemname);
-    m_pModelessPropSheet->RefreshDialog();
     UpdateData(UD_DISPLAY);
 	}
 }