The effort made in Kernel 2.2 tries to retain CPU utilization by avoiding widely spreading page faults among all the interacting processes. However, such an effort increases the possibility of replacing fresh NRU pages in the process being examined, while some NRU pages in other interacting processes that have not been used for long time continue to be kept in the memory. In other words, this approach benefits CPU utilization at the cost of lowering memory utilization. Unfortunately, Kernel 2.4 increases the potential of thrashing and lowering CPU utilization while it tries to address the weakness in its predecessor. The difficulty in the implementation of replacement algorithm calls for a solution which (1) makes memory resource be efficiently used when CPU utilization is not a concern; and (2) changes its replacement behavior to help system recover from thrashing when CPU utilization is low. An adaptive replacement policy adjusting its behavior to the system conditions such as CPU utilization and page fault rates, can achieve both goals at the same time. Our solution is a kernel patch which adjusts existing replacement implementation based on dynamically monitoring system conditions, making adaptive page replacement.