diff --git a/octreesolve_shrink_xyz.f90 b/octreesolve_shrink_xyz.f90
index d792a4e11be2976c063e558ab437e5aca0ae31cc..636b1a9b9126e760b3b87b6acfe5df9025eef47b 100644
--- a/octreesolve_shrink_xyz.f90
+++ b/octreesolve_shrink_xyz.f90
@@ -1,9 +1,10 @@
-subroutine octreesolve_shrink_xyz(threadinfo, os, new_size)
+subroutine octreesolve_shrink_xyz(os, threadinfo)
 
 ! resize the x,y,z arrays.
 ! Author: Douglas Guptill
 ! Copyright (c) 2009 Douglas Guptill. All rights reserved.
 ! 2009-07-14: new
+! 2009-07-27: remove parameter new_size, reverse order of remaining two.
 
 use threads
 use definitions
@@ -11,16 +12,17 @@ use definitions
 implicit none
 
 ! parameters, in
-integer new_size
 type (thread) threadinfo
 
 ! parameters, in/out
 type (octreesolve) os
 
 ! local variables
-integer i
+integer i, new_size
 double precision, dimension(:),pointer::t
 
+new_size = os%nnode
+
 ! make a temporary array
 allocate  (t(new_size),stat=threadinfo%err)
 call heap (threadinfo, 't', 'octreesolve_shrink_xyz...', size(t), 'dp', +1)