diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c
index c92773ff4..c0d5bd7a9 100644
--- a/src/video/vid_s3.c
+++ b/src/video/vid_s3.c
@@ -8,7 +8,7 @@
*
* S3 emulation.
*
- * Version: @(#)vid_s3.c 1.0.16 2018/09/20
+ * Version: @(#)vid_s3.c 1.0.17 2018/09/21
*
* Authors: Sarah Walker,
* Miran Grca,
@@ -2744,7 +2744,7 @@ static int vram_sizes[] =
static void *s3_init(const device_t *info)
{
const wchar_t *bios_fn;
- int chip;
+ int chip, stepping;
s3_t *s3 = malloc(sizeof(s3_t));
svga_t *svga = &s3->svga;
int vram;
@@ -2894,8 +2894,12 @@ static void *s3_init(const device_t *info)
case S3_PARADISE_BAHAMAS64:
case S3_PHOENIX_VISION864:
svga->decode_mask = (8 << 20) - 1;
- s3->id = 0xc1; /*Vision864P*/
- s3->id_ext = s3->id_ext_pci = 0xc1;
+ if (info->local == S3_PARADISE_BAHAMAS64)
+ stepping = 0xc0; /*Vision864*/
+ else
+ stepping = 0xc1; /*Vision864P*/
+ s3->id = stepping;
+ s3->id_ext = s3->id_ext_pci = stepping;
s3->packed_mmio = 0;
s3->getclock = sdac_getclock;