Index: rvm/src/org/jikesrvm/objectmodel/VM_MiscHeader.java
===================================================================
--- rvm/src/org/jikesrvm/objectmodel/VM_MiscHeader.java	(revision 4)
+++ rvm/src/org/jikesrvm/objectmodel/VM_MiscHeader.java	(revision 6)
@@ -204,7 +204,7 @@
   public static void dumpHeader(Object ref) {
     // by default nothing to do, unless the misc header is required
     if (MM_Constants.GENERATE_GC_TRACE) {
-      VM.sysWrite(" OID=", getOID(VM_Magic.objectAsAddress(ref)));
+      VM.sysWrite(" OID=", getOID(ref));
       VM.sysWrite(" LINK=", getLink(ref));
       VM.sysWrite(" DEATH=", getDeathTime(ref));
     }
Index: rvm/src/org/jikesrvm/scheduler/VM_Thread.java
===================================================================
--- rvm/src/org/jikesrvm/scheduler/VM_Thread.java	(revision 4)
+++ rvm/src/org/jikesrvm/scheduler/VM_Thread.java	(revision 6)
@@ -303,7 +303,9 @@
    * Clears the outstanding OutOfMemoryError.
    */
   public void clearOutOfMemoryError() {
-    outOfMemoryError = null;
+    if (outOfMemoryError != null) {
+      outOfMemoryError = null;
+    }
   }
   
   /*
Index: MMTk/src/org/mmtk/utility/TraceGenerator.java
===================================================================
--- MMTk/src/org/mmtk/utility/TraceGenerator.java	(revision 4)
+++ MMTk/src/org/mmtk/utility/TraceGenerator.java	(revision 6)
@@ -191,7 +191,7 @@
       if (MERLIN_ANALYSIS) {
         ObjectReference oldTgt = slot.loadObjectReference();
         if (!oldTgt.isNull())
-          VM.traceInterface.updateDeathTime(oldTgt);
+          VM.traceInterface.updateDeathTime(oldTgt.toObject());
       }
 
       traceBusy = true;
@@ -359,7 +359,7 @@
    * @param obj The root-referenced object
    */
   public static void rootEnumerate(ObjectReference obj) {
-    VM.traceInterface.updateDeathTime(obj);
+    VM.traceInterface.updateDeathTime(obj.toObject());
   }
 
   /**
