diff --git a/Kernel/lib.c b/Kernel/lib.c
index 4d65108a24918473de524516d98df6b44381acfc..6263dc8ae00db17df6fe64c30b54fdbb234e218a 100644
--- a/Kernel/lib.c
+++ b/Kernel/lib.c
@@ -966,6 +966,10 @@ void *memmove(void *__dest, const void *__src, size_t len)
 	if( (tVAddr)dest + len < (tVAddr)src )
 		return memcpy(dest, src, len);
 	
+	// NOTE: Assumes memcpy works forward
+	if( (tVAddr)dest < (tVAddr)src )
+		return memcpy(dest, src, len);
+
 	if( (tVAddr)dest < (tVAddr)src )
 		block_size = (tVAddr)src - (tVAddr)dest;
 	else