diff --git a/src/m_perfstats.c b/src/m_perfstats.c
index 935df82ac734977154845b26aa35626eda0c2e68..ce5202e7d9a727d1e00d7ada9540d7fb9a1c4605 100644
--- a/src/m_perfstats.c
+++ b/src/m_perfstats.c
@@ -646,9 +646,20 @@ void PS_UpdateTickStats(void)
 		if(cv_perfstats.value >= 3 && PS_IsLevelActive())
 		{
 			int i;
-			for (i = 0; i < thinkframe_hooks_length; i++)
+			if (cv_perfstats.value == 3)
 			{
-				PS_UpdateMetricHistory(&thinkframe_hooks[i].time_taken, true, false, false);
+				for (i = 0; i < thinkframe_hooks_length; i++)
+					PS_UpdateMetricHistory(&thinkframe_hooks[i].time_taken, true, false, false);
+			}
+			else if (cv_perfstats.value == 4)
+			{
+				for (i = 0; i < prethinkframe_hooks_length; i++)
+					PS_UpdateMetricHistory(&prethinkframe_hooks[i].time_taken, true, false, false);
+			}
+			else if (cv_perfstats.value == 5)
+			{
+				for (i = 0; i < postthinkframe_hooks_length; i++)
+					PS_UpdateMetricHistory(&postthinkframe_hooks[i].time_taken, true, false, false);
 			}
 		}
 		if (cv_perfstats.value)