diff --git a/src/memory_space.cpp b/src/memory_space.cpp
index 31573c4f2554ae305e003253dda1e2decabe21f8..df196aedbd7629c7813dab7df0916ce811b642be 100644
--- a/src/memory_space.cpp
+++ b/src/memory_space.cpp
@@ -91,7 +91,7 @@ void ZiprMemorySpace_t::MergeFreeRange(RangeAddress_t addr)
 	 * Make a new range of one byte.
 	 * 
 	 * Then, look to see whether or not it
-	 * can be merged with another range. 
+	 * can be merged with another range.
 	 *
 	 * If not, add it as a one byte range.
 	 */
@@ -121,12 +121,29 @@ void ZiprMemorySpace_t::MergeFreeRange(RangeAddress_t addr)
 			printf("to: (%p - %p) \n", (void*)nnr.GetStart(), (void*)nnr.GetEnd());
 		}
 		nr = nnr;
+		/*
+		 * There is the possibility that we just expanded down and we
+		 * now abut the end of a smaller free one.
+		 */
 		if(itm1!=free_ranges.end())
 		{
 			Range_t r2=*itm1;
+			if (m_verbose)
+			{
+				printf("Expanded range: ");
+				printf("from: (%p - %p) ", (void*)nr.GetStart(), (void*)nr.GetEnd());
+				printf("to: (%p - %p) \n", (void*)r2.GetStart(), (void*)nnr.GetEnd());
+			}
 			nr.SetStart(r2.GetStart());	
 			free_ranges.erase(r2);
+			
 		}
+		/*
+		 * Handling the analagous secondary merge case
+		 * does not need to be handled here -- that 
+		 * would have been taken care of in the 1st 
+		 * conditional (just using opposite terms).
+		 */
 		free_ranges.erase(r);
 	} 
 	else if(itm1!=free_ranges.end())	 // not addr+1 is still busy, so we don't merge against it.