diff --git a/data/combination.lisp b/data/combination.lisp
index 2e1ad1b9a7a927db8ea5c66d11bfb30418fe9c8e..ae57ad5b50536346dfff795f605619d4f84054c2 100644
--- a/data/combination.lisp
+++ b/data/combination.lisp
@@ -1,6 +1,6 @@
 ;; Combinations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2010-07-15 23:06:33EDT combination.lisp>
+;; Time-stamp: <2010-07-16 17:14:03EDT combination.lisp>
 ;;
 ;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -108,12 +108,11 @@
   combination destination.  The two combinations must have the same size.")
 
 (defmethod grid:copy
-    ((source combination) &rest args &key grid-type destination &allow-other-keys)
+    ((source combination) &key grid-type destination &allow-other-keys)
   (if grid-type
       (call-next-method)
       (comb-copy
        source
-       :destination
        (or destination
 	   (make-combination (combination-range source) (size source))))))
 
diff --git a/data/permutation.lisp b/data/permutation.lisp
index bcaa660cd2bb7badc8a23b8d607b17293de458b4..3eb8b7d9c7bd7149ba1071533b19ce6401205a2b 100644
--- a/data/permutation.lisp
+++ b/data/permutation.lisp
@@ -1,6 +1,6 @@
 ;; Permutations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2010-07-15 23:05:04EDT permutation.lisp>
+;; Time-stamp: <2010-07-16 17:14:45EDT permutation.lisp>
 ;;
 ;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -93,11 +93,11 @@
    permutation destination.  The two permutations must have the same size.")
 
 (defmethod grid:copy
-    ((source permutation) &rest args &key grid-type destination &allow-other-keys)
+    ((source permutation) &key grid-type destination &allow-other-keys)
   (if grid-type
       (call-next-method)
       (perm-copy
-       source :destination (or destination (make-permutation (size source))))))
+       source (or destination (make-permutation (size source))))))
 
 (defmfun swap-elements ((p permutation) i j)
   "gsl_permutation_swap"
diff --git a/histogram/histogram.lisp b/histogram/histogram.lisp
index 50aae82e3313f24736efabfca77c3c647f345e40..0a671670a30d806c6940a5e25fc6efad40f424f1 100644
--- a/histogram/histogram.lisp
+++ b/histogram/histogram.lisp
@@ -1,6 +1,6 @@
 ;; The histogram structure
 ;; Liam Healy, Mon Jan  1 2007 - 11:32
-;; Time-stamp: <2010-07-15 22:27:24EDT histogram.lisp>
+;; Time-stamp: <2010-07-16 17:10:12EDT histogram.lisp>
 ;;
 ;; Copyright 2007, 2008, 2009, 2010 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -101,8 +101,8 @@
 
 (defmethod grid:copy ((source histogram) &key destination &allow-other-keys)
   (if destination
-      (histo-clone destination)
-      (histo-copy source)))
+      (histo-copy destination source)
+      (histo-clone destination)))
 
 (defmfun histo2d-copy (source destination)
   "gsl_histogram2d_memcpy"
@@ -126,5 +126,5 @@
 
 (defmethod grid:copy ((source histogram2d) &key destination &allow-other-keys)
   (if destination
-      (histo2d-clone destination)
-      (histo2d-copy source)))
+      (histo2d-copy destination source)
+      (histo2d-clone destination)))
diff --git a/random/generators.lisp b/random/generators.lisp
index e938813e1f2596d8f3a30e6d19f4882a7e3ffcd9..45736e7c467fb15fb7c8accc07e90ea884cddf34 100644
--- a/random/generators.lisp
+++ b/random/generators.lisp
@@ -1,6 +1,6 @@
 ;; Generators of random numbers.
 ;; Liam Healy, Sat Jul 15 2006 - 14:43
-;; Time-stamp: <2010-07-15 22:43:39EDT generators.lisp>
+;; Time-stamp: <2010-07-16 17:11:25EDT generators.lisp>
 ;;
 ;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -197,8 +197,8 @@
 (defmethod grid:copy
     ((source random-number-generator) &key destination &allow-other-keys)
   (if destination
-      (rng-clone destination)
-      (rng-copy source)))
+      (rng-copy source destination)
+      (rng-clone source)))
 
 ;;;;****************************************************************************
 ;;;; Examples and unit test
diff --git a/random/quasi.lisp b/random/quasi.lisp
index 2def9355ca0a33907a2db3c56259f44cd693b799..605de960aa905f861ad12bfd3bd3d0a5f1885309 100644
--- a/random/quasi.lisp
+++ b/random/quasi.lisp
@@ -1,6 +1,6 @@
 ;; Quasi-random sequences in arbitrary dimensions.
 ;; Liam Healy, Sun Jul 16 2006 - 15:54
-;; Time-stamp: <2010-07-15 22:41:48EDT quasi.lisp>
+;; Time-stamp: <2010-07-16 17:10:54EDT quasi.lisp>
 ;;
 ;; Copyright 2006, 2007, 2008, 2009 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
@@ -84,8 +84,8 @@
 (defmethod grid:copy
     ((source quasi-random-number-generator) &key destination &allow-other-keys)
   (if destination
-      (quasi-clone destination)
-      (quasi-copy source)))
+      (quasi-copy source destination)
+      (quasi-clone source)))
 
 (def-rng-type +niederreiter2+
     ;; FDL