diff --git a/lib/tdiff.rb b/lib/tdiff.rb
index <HASH>..<HASH> 100644
--- a/lib/tdiff.rb
+++ b/lib/tdiff.rb
@@ -115,14 +115,14 @@ module TDiff
     # explicitly discard the c matrix
     c = nil
 
-    # recurse down through unchanged nodes
-    unchanged.each { |x,y| x.tdiff(y,&block) }
-    unchanged = nil
-
     # sequentially iterate over the changed nodes
     changes.each(&block)
     changes = nil
 
+    # recurse down through unchanged nodes
+    unchanged.each { |x,y| x.tdiff(y,&block) }
+    unchanged = nil
+
     return self
   end
 end
yield the changes before recursing.