diff --git a/src/data.c b/src/data.c
index cc74234821100299aceed0d97ec7f22362fd4f52..1c82a4a31784ad1ce6bb9664839a18ae2fc40ec3 100644
--- a/src/data.c
+++ b/src/data.c
@@ -137,7 +137,9 @@ SH_Data_register_page (struct SH_Data * data, const char * name,
 		return PAGE_ERR;
 	}
 
-	data->pages[data->page_n].id = NEXT_PAGE(data->last_page);
+	NEXT_PAGE(data->last_page);
+
+	data->pages[data->page_n].id = data->last_page;
 	data->pages[data->page_n].name = strdup (name);
 
 	if (errno == ENOMEM)