--- 10_freebsd.in.orig	2009-08-08 19:55:59.000000000 -0500
+++ 10_freebsd.in	2009-08-08 20:25:32.000000000 -0500
@@ -37,6 +37,10 @@
   kfreebsd=/boot/kernel/kernel.gz
 fi
 
+if test -e /boot/kernel/acpi.ko ; then
+  apci=/boot/kernel/acpi.ko
+fi
+
 if [ "x$kfreebsd" != "x" ] ; then
   echo "Found kernel of FreeBSD: $kfreebsd" >&2
 
@@ -50,6 +54,12 @@
     devices_rel_dirname=`make_system_path_relative_to_its_root $devices_dirname`
   fi
 
+  if [ x"$acpi" != "x" ] ; then
+    acpi_basename=`basename $acpi`
+    acpi_dirname=`dirname $acpi`
+    acpi_rel_dirname=`make_system_path_relative_to_its_root $acpi_dirname`
+  fi
+
   root_device=`basename ${GRUB_DEVICE}`
 
   # For "ufs" it's the same.  Do we care about the others?
@@ -68,6 +78,11 @@
 	freebsd_loadenv		${devices_rel_dirname}/${devices_basename}
 EOF
   fi
+  if [ x"$acpi" != "x" ] ; then
+    cat << EOF
+        freebsd_module_elf      ${acpi_rel_dirname}/${acpi_basename}
+EOF
+  fi
   cat << EOF
 	set FreeBSD.vfs.root.mountfrom=${kfreebsd_fs}:${root_device}
 }
