Index: /trunk/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp	(revision 37576)
+++ /trunk/src/VBox/Runtime/r0drv/darwin/mach_kernel-r0drv-darwin.cpp	(revision 37577)
@@ -307,5 +307,5 @@
     AssertReturn((RTFOFF)offNative == off, VERR_OUT_OF_RANGE);
 
-
+#if 0 /* Added in 10.6, grr. */
     errno_t rc;
     if (!pcbRead)
@@ -320,4 +320,24 @@
     }
     return !rc ? VINF_SUCCESS : RTErrConvertFromErrno(rc);
+
+#else
+    uio_t hUio = uio_create(1, offNative, UIO_SYSSPACE, UIO_READ);
+    if (!hUio)
+        return VERR_NO_MEMORY;
+    errno_t rc;
+    if (uio_addiov(hUio, (user_addr_t)(uintptr_t)pvBuf, cbToRead) == 0)
+    {
+        rc = VNOP_READ(pThis->hVnode, hUio, 0 /*ioflg*/, pThis->hVfsCtx);
+        if (pcbRead)
+            *pcbRead = cbToRead - uio_resid(hUio);
+        else if (!rc && uio_resid(hUio))
+            rc = VERR_FILE_IO_ERROR;
+    }
+    else
+        rc = VERR_INTERNAL_ERROR_3;
+    uio_free(hUio);
+    return rc;
+
+#endif
 }
 
