diff --git a/guix/store.scm b/guix/store.scm
index 7b1da34678074cf5712415a58500433036176ab9..668bc9a01916cf2467ea9388b6b2ca524ff4c9a5 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -344,8 +344,8 @@ (define* (open-connection #:optional (file %default-socket-path)
                     (let ((s (%make-nix-server s
                                                (protocol-major v)
                                                (protocol-minor v)
-                                               (make-hash-table)
-                                               (make-hash-table))))
+                                               (make-hash-table 100)
+                                               (make-hash-table 100))))
                       (let loop ((done? (process-stderr s)))
                         (or done? (process-stderr s)))
                       s))))))))
@@ -478,7 +478,7 @@ (define add-text-to-store
       "Add TEXT under file NAME in the store, and return its store path.
 REFERENCES is the list of store paths referred to by the resulting store
 path."
-      (let ((args  `(,name ,text ,references))
+      (let ((args  `(,text ,name ,references))
             (cache (nix-server-add-text-to-store-cache server)))
         (or (hash-ref cache args)
             (let ((path (add-text-to-store server name text references)))
@@ -503,7 +503,7 @@ (define add-to-store
 RECURSIVE? is true, its contents are added, and its permission bits are
 kept.  HASH-ALGO must be a string such as \"sha256\"."
       (let* ((st    (stat file-name #f))
-             (args  `(,basename ,recursive? ,hash-algo ,st))
+             (args  `(,st ,basename ,recursive? ,hash-algo))
              (cache (nix-server-add-to-store-cache server)))
         (or (and st (hash-ref cache args))
             (let ((path (add-to-store server basename #t recursive?