--- /collects/pkg/lib.rkt
+++ /collects/pkg/lib.rkt
@@ -881,7 +881,10 @@
         (eq? type 'link))
     (unless (directory-exists? pkg)
       (pkg-error "no such directory\n  path: ~a" pkg))
-    (let ([pkg (directory-path-no-slash pkg)])
+    (let ([single-collect? (file-exists? (build-path pkg "single-collect"))]
+          [pkg (directory-path-no-slash pkg)])
+      (when single-collect?
+        (displayln "This is a single-collection package."))
       (cond
        [(eq? type 'link)
         (install-info pkg-name
@@ -893,8 +896,11 @@
         (define pkg-dir
           (make-temporary-file "pkg~a" 'directory))
         (delete-directory pkg-dir)
-        (make-parent-directory* pkg-dir)
-        (copy-directory/files pkg pkg-dir)
+        (let ([pkg-dir (if single-collect?
+                           (build-path pkg-dir pkg-name)
+                           pkg-dir)])
+          (make-parent-directory* pkg-dir)
+          (copy-directory/files pkg pkg-dir))
         (install-info pkg-name
                       `(dir ,(simple-form-path* pkg))
                       pkg-dir
