1diff -urN grub-0.97.orig/stage2/fsys_ext2fs.c grub-0.97/stage2/fsys_ext2fs.c
2--- grub-0.97.orig/stage2/fsys_ext2fs.c	2004-08-08 18:19:18.000000000 +0000
3+++ grub-0.97/stage2/fsys_ext2fs.c	2008-09-16 19:31:15.000000000 +0000
4@@ -254,7 +254,7 @@
5 {
6   int retval = 1;
7
8-  if ((((current_drive & 0x80) || (current_slice != 0))
9+  if ((((current_slice != 0))
10        && (current_slice != PC_SLICE_TYPE_EXT2FS)
11        && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
12        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
13diff -urN grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c
14--- grub-0.97.orig/stage2/fsys_fat.c	2005-03-15 16:52:00.000000000 +0000
15+++ grub-0.97/stage2/fsys_fat.c	2008-09-16 19:31:26.000000000 +0000
16@@ -70,7 +70,7 @@
17   __u32 magic, first_fat;
18
19   /* Check partition type for harddisk */
20-  if (((current_drive & 0x80) || (current_slice != 0))
21+  if (((current_slice != 0))
22       && ! IS_PC_SLICE_TYPE_FAT (current_slice)
23       && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
24     return 0;
25diff -urN grub-0.97.orig/stage2/fsys_ffs.c grub-0.97/stage2/fsys_ffs.c
26--- grub-0.97.orig/stage2/fsys_ffs.c	2003-07-09 11:45:52.000000000 +0000
27+++ grub-0.97/stage2/fsys_ffs.c	2008-09-16 19:31:32.000000000 +0000
28@@ -82,7 +82,7 @@
29 {
30   int retval = 1;
31
32-  if ((((current_drive & 0x80) || (current_slice != 0))
33+  if ((((current_slice != 0))
34        && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS))
35       || part_length < (SBLOCK + (SBSIZE / DEV_BSIZE))
36       || !devread (SBLOCK, 0, SBSIZE, (char *) SUPERBLOCK)
37diff -urN grub-0.97.orig/stage2/fsys_minix.c grub-0.97/stage2/fsys_minix.c
38--- grub-0.97.orig/stage2/fsys_minix.c	2003-07-09 11:45:53.000000000 +0000
39+++ grub-0.97/stage2/fsys_minix.c	2008-09-16 19:32:01.000000000 +0000
40@@ -160,7 +160,7 @@
41 int
42 minix_mount (void)
43 {
44-  if (((current_drive & 0x80) || current_slice != 0)
45+  if ((current_slice != 0)
46       && ! IS_PC_SLICE_TYPE_MINIX (current_slice)
47       && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER))
48     return 0;			/* The partition is not of MINIX type */
49diff -urN grub-0.97.orig/stage2/fsys_ufs2.c grub-0.97/stage2/fsys_ufs2.c
50--- grub-0.97.orig/stage2/fsys_ufs2.c	2004-06-19 12:17:52.000000000 +0000
51+++ grub-0.97/stage2/fsys_ufs2.c	2008-09-16 19:32:32.000000000 +0000
52@@ -87,7 +87,7 @@
53   sblockloc = -1;
54   type = 0;
55
56-  if (! (((current_drive & 0x80) || (current_slice != 0))
57+  if (! (((current_slice != 0))
58 	 && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS)))
59     {
60       for (i = 0; sblock_try[i] != -1; ++i)
61diff -urN grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c
62--- grub-0.97.orig/stage2/fsys_vstafs.c	2003-07-09 11:45:53.000000000 +0000
63+++ grub-0.97/stage2/fsys_vstafs.c	2008-09-16 19:32:39.000000000 +0000
64@@ -47,7 +47,7 @@
65 {
66   int retval = 1;
67
68-  if( (((current_drive & 0x80) || (current_slice != 0))
69+  if( (((current_slice != 0))
70        && current_slice != PC_SLICE_TYPE_VSTAFS)
71       ||  ! devread (0, 0, BLOCK_SIZE, (char *) FSYS_BUF)
72       ||  FIRST_SECTOR->fs_magic != 0xDEADFACE)
73