diff --git a/hemlock/dired.lisp b/hemlock/dired.lisp
index 2ae2b8ea81a100ee21741b57428363e31401298e..4d8100902f229c40a75456f6aa7940b7b9a915e4 100644
--- a/hemlock/dired.lisp
+++ b/hemlock/dired.lisp
@@ -278,7 +278,7 @@
 	(multiple-value-bind (data byte-count mode)
 			     (read-file fd ses-name1)
 	  (unwind-protect (write-file ses-name2 data byte-count mode)
-	    (dispose-storage data byte-count)))
+	    (system:deallocate-system-memory data byte-count)))
       (close-file fd)))
   (set-write-date ses-name2 secs1)
   (funcall *report-function* "~&~S  ==>~%  ~S~%" ses-name1 ses-name2))
@@ -576,23 +576,15 @@
     (declare (ignore ino nlink uid gid rdev))
     (unless winp (funcall *error-function*
 			  "Opening ~S failed: ~A."  ses-name dev-or-err))
-    (let ((storage (lisp::fixnum-to-sap (allocate-storage size))))
+    (let ((storage (system:allocate-system-memory size)))
       (multiple-value-bind (read-bytes err)
 			   (mach:unix-read fd storage size)
 	(when (or (null read-bytes) (not (= size read-bytes)))
-	  (dispose-storage storage size)
+	  (system:deallocate-system-memory storage size)
 	  (funcall *error-function*
 		   "Reading file ~S failed: ~A." ses-name err)))
       (values storage size mode))))
 
-(defun dispose-storage (storage size)
-  (mach::vm_deallocate lisp::*task-self*
-		       (lisp::sap-to-fixnum storage)
-		       size))
-
-(defun allocate-storage (size)
-  (lisp::do-validate 0 size -1))
-
 (defun write-file (ses-name data byte-count mode)
   (multiple-value-bind (fd err) (mach:unix-creat ses-name #o644)
     (unless fd