diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp
index f31e5495a1e..687c3ffc8e1 100644
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp
@@ -124,13 +124,13 @@ void ShenandoahHeapRegionCounters::update() {
 }
 
 static int encode_phase(ShenandoahHeap* heap) {
-  if (heap->is_evacuation_in_progress()) {
+  if (heap->is_evacuation_in_progress() || heap->is_full_gc_move_in_progress()) {
     return 2;
   }
-  if (heap->is_update_refs_in_progress()) {
+  if (heap->is_update_refs_in_progress() || heap->is_full_gc_move_in_progress()) {
     return 3;
   }
-  if (heap->is_concurrent_mark_in_progress()) {
+  if (heap->is_concurrent_mark_in_progress() || heap->is_full_gc_in_progress()) {
     return 1;
   }
   assert(heap->is_idle(), "What is it doing?");
@@ -150,7 +150,7 @@ static int get_generation_shift(ShenandoahGeneration* generation) {
 
 jlong ShenandoahHeapRegionCounters::encode_heap_status(ShenandoahHeap* heap) {
 
-  if (heap->is_idle()) {
+  if (heap->is_idle() && !heap->is_full_gc_in_progress()) {
     return 0;
   }