diff --git a/Bootloaders/CDC/LUFA CDC Bootloader.inf b/Bootloaders/CDC/LUFA CDC Bootloader.inf
index 6df089ab7813465cf030a5dac98e8fc3abebb035..80b8d69bc8522eae6d053ea311b25f4659887f95 100644
--- a/Bootloaders/CDC/LUFA CDC Bootloader.inf	
+++ b/Bootloaders/CDC/LUFA CDC Bootloader.inf	
@@ -1,55 +1,106 @@
-;       Windows LUFA CDC Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204A
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204A
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB AVR109 Bootloader" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA CDC Bootloader Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/CDC/LUFA CDC.inf b/Demos/Device/ClassDriver/CDC/LUFA CDC.inf
index d9d9ed63a979f16b382f6edb489f3326dc0d31a2..4cdf594351a8816855c380b02b9dbb2c426b1a6a 100644
--- a/Demos/Device/ClassDriver/CDC/LUFA CDC.inf	
+++ b/Demos/Device/ClassDriver/CDC/LUFA CDC.inf	
@@ -1,55 +1,106 @@
-;       Windows LUFA CDC Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_2044
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/DualCDC/LUFA DualCDC.inf b/Demos/Device/ClassDriver/DualCDC/LUFA DualCDC.inf
index 10ba560f82d891428326b5c43e09e6b2c4ae245a..741bf28eb77f070dcef13bfb4bcd30f563b4e755 100644
--- a/Demos/Device/ClassDriver/DualCDC/LUFA DualCDC.inf	
+++ b/Demos/Device/ClassDriver/DualCDC/LUFA DualCDC.inf	
@@ -1,56 +1,106 @@
-;       Windows LUFA Dual CDC Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204E&MI_00
-%Modem3% = Modem3, USB\VID_03EB&PID_204E&MI_02
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204E&MI_00, USB\VID_03EB&PID_204E&MI_02
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204E&MI_00, USB\VID_03EB&PID_204E&MI_02
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA Dual CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/ClassDriver/USBtoSerial/LUFA USBtoSerial.inf b/Demos/Device/ClassDriver/USBtoSerial/LUFA USBtoSerial.inf
index bd9c8bf142366b59e6018949a01553308ff7e588..10a6a8ce28c9dc7fa4c4575646ac0d2fefa90dfb 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/LUFA USBtoSerial.inf	
+++ b/Demos/Device/ClassDriver/USBtoSerial/LUFA USBtoSerial.inf	
@@ -1,55 +1,106 @@
-;  Windows LUFA USB to Serial Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204B
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA USB-RS232 CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/CDC/LUFA CDC.inf b/Demos/Device/LowLevel/CDC/LUFA CDC.inf
index d9d9ed63a979f16b382f6edb489f3326dc0d31a2..4cdf594351a8816855c380b02b9dbb2c426b1a6a 100644
--- a/Demos/Device/LowLevel/CDC/LUFA CDC.inf	
+++ b/Demos/Device/LowLevel/CDC/LUFA CDC.inf	
@@ -1,55 +1,106 @@
-;       Windows LUFA CDC Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_2044
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2044
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/DualCDC/LUFA DualCDC.inf b/Demos/Device/LowLevel/DualCDC/LUFA DualCDC.inf
index 10ba560f82d891428326b5c43e09e6b2c4ae245a..741bf28eb77f070dcef13bfb4bcd30f563b4e755 100644
--- a/Demos/Device/LowLevel/DualCDC/LUFA DualCDC.inf	
+++ b/Demos/Device/LowLevel/DualCDC/LUFA DualCDC.inf	
@@ -1,56 +1,106 @@
-;       Windows LUFA Dual CDC Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204E&MI_00
-%Modem3% = Modem3, USB\VID_03EB&PID_204E&MI_02
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204E&MI_00, USB\VID_03EB&PID_204E&MI_02
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204E&MI_00, USB\VID_03EB&PID_204E&MI_02
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA Dual CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Device/LowLevel/USBtoSerial/LUFA USBtoSerial.inf b/Demos/Device/LowLevel/USBtoSerial/LUFA USBtoSerial.inf
index bd9c8bf142366b59e6018949a01553308ff7e588..10a6a8ce28c9dc7fa4c4575646ac0d2fefa90dfb 100644
--- a/Demos/Device/LowLevel/USBtoSerial/LUFA USBtoSerial.inf	
+++ b/Demos/Device/LowLevel/USBtoSerial/LUFA USBtoSerial.inf	
@@ -1,55 +1,106 @@
-;  Windows LUFA USB to Serial Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204B
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_204B
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA USB-RS232 CDC Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
index d60db097bec61e64021c53f955864b8ad2d6c92b..ef073abd5145fb3977d8cd9a482419780046ec2d 100644
--- a/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
+++ b/Demos/Host/ClassDriver/StillImageHost/StillImageHost.c
@@ -110,6 +110,10 @@ int main(void)
 					break;
 				}
 
+				printf("Turning off Device...\r\n");
+				SImage_Host_SendCommand(&DigitalCamera_SI_Interface, 0x1013, 0, 0, 0, 0, NULL);
+				printf("Device Off.\r\n");
+
 				printf("Closing Session...\r\n");
 
 				if (SImage_Host_CloseSession(&DigitalCamera_SI_Interface) != PIPE_RWSTREAM_NoError)
@@ -119,8 +123,6 @@ int main(void)
 					break;
 				}
 				
-				printf("Device Idle.\r\n");
-			
 				LEDs_SetAllLEDs(LEDMASK_USB_READY);
 				USB_HostState = HOST_STATE_WaitForDeviceRemoval;
 				break;
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.c b/LUFA/Drivers/USB/Class/Host/StillImage.c
index a3b150848de576844f3efa8ff189000bc3ddb752..ecaed3a890a46659575ef4f73c24d3a9bd29d2ba 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.c
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.c
@@ -153,10 +153,7 @@ static uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* SIInterfaceI
 {
 	uint8_t ErrorCode;
 	
-	if (SIInterfaceInfo->State.IsSessionOpen)
-	  PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
-	else
-	  PIMAHeader->TransactionID = 0;
+	PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
 
 	Pipe_SelectPipe(SIInterfaceInfo->Config.DataOUTPipeNumber);
 	Pipe_Unfreeze();
@@ -164,15 +161,12 @@ static uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* SIInterfaceI
 	if ((ErrorCode = Pipe_Write_Stream_LE(PIMAHeader, PIMA_COMMAND_SIZE(0), NO_STREAM_CALLBACK)) != PIPE_RWSTREAM_NoError)
 	  return ErrorCode;
 	
-	if (PIMAHeader->Type == CType_CommandBlock)
-	{
-		uint8_t ParamBytes = (PIMAHeader->DataLength - PIMA_COMMAND_SIZE(0));
+	uint8_t ParamBytes = (PIMAHeader->DataLength - PIMA_COMMAND_SIZE(0));
 
-		if (ParamBytes)
-		{
-			if ((ErrorCode = Pipe_Write_Stream_LE(&PIMAHeader->Params, ParamBytes, NO_STREAM_CALLBACK)) != PIPE_RWSTREAM_NoError)
-			  return ErrorCode;
-		}
+	if (ParamBytes)
+	{
+		if ((ErrorCode = Pipe_Write_Stream_LE(&PIMAHeader->Params, ParamBytes, NO_STREAM_CALLBACK)) != PIPE_RWSTREAM_NoError)
+		  return ErrorCode;
 	}
 	
 	Pipe_ClearOUT();	
@@ -318,14 +312,13 @@ uint8_t SImage_Host_OpenSession(USB_ClassInfo_SI_Host_t* SIInterfaceInfo)
 								.Params        = {},
 							};
 							
-	SIInterfaceInfo->State.TransactionID = 1;
-	
 	if ((ErrorCode = SImage_Host_SendBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
 	  return ErrorCode;
 	  
 	if ((ErrorCode = SImage_Host_ReceiveBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
 	  return ErrorCode;
 	  
+	SIInterfaceInfo->State.TransactionID = 0;
 	SIInterfaceInfo->State.IsSessionOpen = true;
 
 	return PIPE_RWSTREAM_NoError;
@@ -354,6 +347,37 @@ uint8_t SImage_Host_CloseSession(USB_ClassInfo_SI_Host_t* SIInterfaceInfo)
 
 	SIInterfaceInfo->State.IsSessionOpen = false;
 
+	if ((PIMABlock.Type != CType_ResponseBlock) || (PIMABlock.Code != 0x2001))
+	  return SI_ERROR_LOGICAL_CMD_FAILED;
+
+	return PIPE_RWSTREAM_NoError;
+}
+
+uint8_t SImage_Host_SendCommand(USB_ClassInfo_SI_Host_t* SIInterfaceInfo, uint16_t Operation, uint8_t UsedParams,
+                                uint32_t Param1, uint32_t Param2, uint32_t Param3, void* DataBuff)
+{
+	if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
+	  return HOST_SENDCONTROL_DeviceDisconnect;
+
+	uint8_t ErrorCode;
+
+	SI_PIMA_Container_t PIMABlock = (SI_PIMA_Container_t)
+							{
+								.DataLength    = PIMA_COMMAND_SIZE(UsedParams),
+								.Type          = CType_CommandBlock,
+								.Code          = Operation,
+								.Params        = {Param1, Param2, Param3},
+							};
+							
+	if ((ErrorCode = SImage_Host_SendBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
+	  return ErrorCode;
+	  
+	if ((ErrorCode = SImage_Host_ReceiveBlockHeader(SIInterfaceInfo, &PIMABlock)) != PIPE_RWSTREAM_NoError)
+	  return ErrorCode;
+
+	if ((PIMABlock.Type != CType_ResponseBlock) || (PIMABlock.Code != 0x2001))
+	  return SI_ERROR_LOGICAL_CMD_FAILED;
+
 	return PIPE_RWSTREAM_NoError;
 }
 
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.h b/LUFA/Drivers/USB/Class/Host/StillImage.h
index 7e33fc4b1bf27ac58e8292f2e34f876e909ba4ee..75f76eb8e5c14f092fa4b3d22b9d79db29eb619d 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.h
@@ -54,6 +54,9 @@
 		#endif
 
 	/* Public Interface - May be used in end-application: */
+		/* Macros: */
+			#define SI_ERROR_LOGICAL_CMD_FAILED              0xC0
+
 		/* Type Defines: */
 			typedef struct
 			{
@@ -125,6 +128,9 @@
 
 			uint8_t SImage_Host_OpenSession(USB_ClassInfo_SI_Host_t* SIInterfaceInfo);
 			uint8_t SImage_Host_CloseSession(USB_ClassInfo_SI_Host_t* SIInterfaceInfo);
+
+			uint8_t SImage_Host_SendCommand(USB_ClassInfo_SI_Host_t* SIInterfaceInfo, uint16_t Operation, uint8_t UsedParams,
+			                                uint32_t Param1, uint32_t Param2, uint32_t Param3, void* DataBuff);
 			
 	/* Private Interface - For use in library only: */
 	#if !defined(__DOXYGEN__)
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 60f00ed15e332b024639dd336effa25899ec8259..db91efe7b77ad90e8cea3ae993a3339cca43ac75 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -36,6 +36,7 @@
   *  - Changed HIDParser to only zero out important values in the Parsed HID Report Item Information structure to save cycles
   *  - The HID report parser now always processed FEATURE items - HID_ENABLE_FEATURE_PROCESSING token now has no effect
   *  - The HID report parser now always ignores constant-data items, HID_INCLUDE_CONSTANT_DATA_ITEMS token now has no effect
+  *  - The Benito Programmer project now has its own unique VID/PID pair allocated from the Atmel donated LUFA VID/PID pool
   *
   *  <b>Fixed:</b>
   *  - Fixed possible lockup in the CDC device class driver, when the host sends data that is a multiple of the
@@ -54,6 +55,7 @@
   *    routine, so that ignored callbacks don't cause incorrect data to be sent
   *  - Fixed StillImageHost not correctly freezing and unfreezing data pipes while waiting for a response block header
   *  - Fixed error in PrinterHost preventing the full page data from being sent to the attached device
+  *  - CDC based demos and project now work under 64 bit versions of Windows (thanks to Ronny Hanson, Thomas Bleeker)
   *
   *
   *  \section Sec_ChangeLog090810 Version 090810
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt
index 752bf7b2b041b4c48c1ded5a08f41b55871a055f..f58dc88f0ef96d36f74e556fa9e37075d034f4f5 100644
--- a/LUFA/ManPages/LUFAPoweredProjects.txt
+++ b/LUFA/ManPages/LUFAPoweredProjects.txt
@@ -33,6 +33,7 @@
  *  - Bicycle POV: http://www.code.google.com/p/bicycleledpov/
  *  - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
  *  - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller - http://noisybox.net/electronics/wingdinger/
+ *  - Garmin GPS USB to NMEA standard serial sentence translator: http://github.com/nall/garmin-transmogrifier/tree/master
  *  - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/
  *  - Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/
  *  - Orbee, a USB connected RGB Orb for notifications: http://www.franksworkshop.com.au/Electronics/Orbee/Orbee.htm
@@ -51,4 +52,5 @@
  *  - ARPS Locator: http://la3t.hamradio.no/lab//?id=tracker_en
  *  - Digital Survey Instruments Magnetometer and Pointer: http://www.digitalsurveyinstruments.com/
  *  - Lightweight CC110x USB dongle for 868MHz Protocols: http://busware.de/tiki-index.php?page=CUL
+ *  - BAP, A tiny LUFA based AVR Programmer: http://www.busware.de/tiki-index.php?page=BAP
  */
\ No newline at end of file
diff --git a/LUFA/ManPages/VIDAndPIDValues.txt b/LUFA/ManPages/VIDAndPIDValues.txt
index 296098fc51782871ad3f54251217c7069ae90b6f..e0259141cb90f992827fecf40a16de9d6914d5b5 100644
--- a/LUFA/ManPages/VIDAndPIDValues.txt
+++ b/LUFA/ManPages/VIDAndPIDValues.txt
@@ -228,7 +228,7 @@
  *     0x2060
  *    </td>
  *    <td>
- *     <i>Currently Unallocated</i>
+ *     <i>Benito Programmer Project</i>
  *    </td>
  *   </tr>
  *
diff --git a/Projects/Benito/Benito Programmer.inf b/Projects/Benito/Benito Programmer.inf
index bd9c8bf142366b59e6018949a01553308ff7e588..6af572527b1d5278c0ffafbc87d88de373f5565f 100644
--- a/Projects/Benito/Benito Programmer.inf	
+++ b/Projects/Benito/Benito Programmer.inf	
@@ -1,55 +1,106 @@
-;  Windows LUFA USB to Serial Setup File
+;************************************************************
+; Windows USB CDC ACM Setup File
 ; Copyright (c) 2000 Microsoft Corporation
 
-[Version] 
-Signature="$Windows NT$" 
+
+[Version]
+Signature="$Windows NT$"
 Class=Ports
-ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 
-Provider=%COMPANY% 
+ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider=%MFGNAME%
 LayoutFile=layout.inf
-DriverVer=06/06/2006,1.0.0.0
+CatalogFile=%MFGFILENAME%.cat
+DriverVer=11/15/2007,5.1.2600.0
 
-[Manufacturer] 
-%MFGNAME% = ManufName
+[Manufacturer]
+%MFGNAME%=DeviceList, NTamd64
 
-[DestinationDirs] 
-DefaultDestDir=12 
+[DestinationDirs]
+DefaultDestDir=12
 
-[ManufName] 
-%Modem3% = Modem3, USB\VID_03EB&PID_204B
 
 ;------------------------------------------------------------------------------
-;  Windows 2000/XP Sections
+;  Windows 2000/XP/Vista-32bit Sections
 ;------------------------------------------------------------------------------
 
-[Modem3.nt]
-CopyFiles=USBModemCopyFileSection
-AddReg=Modem3.nt.AddReg 
+[DriverInstall.nt]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.nt
+AddReg=DriverInstall.nt.AddReg
 
-[USBModemCopyFileSection]
+[DriverCopyFiles.nt]
 usbser.sys,,,0x20
 
-[Modem3.nt.AddReg] 
-HKR,,DevLoader,,*ntkern 
-HKR,,NTMPDriver,,usbser.sys 
-HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" 
+[DriverInstall.nt.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
 
-[Modem3.nt.Services] 
-AddService=usbser, 0x00000002, DriverService
+[DriverInstall.nt.Services]
+AddService=usbser, 0x00000002, DriverService.nt
 
-[DriverService] 
+[DriverService.nt]
 DisplayName=%SERVICE%
 ServiceType=1
 StartType=3
 ErrorControl=1
-ServiceBinary=%12%\usbser.sys 
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
 
 ;------------------------------------------------------------------------------
-;  String Definitions
+;  Vista-64bit Sections
+;------------------------------------------------------------------------------
+
+[DriverInstall.NTamd64]
+include=mdmcpq.inf
+CopyFiles=DriverCopyFiles.NTamd64
+AddReg=DriverInstall.NTamd64.AddReg
+
+[DriverCopyFiles.NTamd64]
+%DRIVERFILENAME%.sys,,,0x20
+
+[DriverInstall.NTamd64.AddReg]
+HKR,,DevLoader,,*ntkern
+HKR,,NTMPDriver,,%DRIVERFILENAME%.sys
+HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
+
+[DriverInstall.NTamd64.Services]
+AddService=usbser, 0x00000002, DriverService.NTamd64
+
+[DriverService.NTamd64]
+DisplayName=%SERVICE%
+ServiceType=1
+StartType=3
+ErrorControl=1
+ServiceBinary=%12%\%DRIVERFILENAME%.sys
+
+
 ;------------------------------------------------------------------------------
+;  Vendor and Product ID Definitions
+;------------------------------------------------------------------------------
+; When developing your USB device, the VID and PID used in the PC side
+; application program and the firmware on the microcontroller must match.
+; Modify the below line to use your VID and PID.  Use the format as shown below.
+; Note: One INF file can be used for multiple devices with different VID and PIDs.
+; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
+;------------------------------------------------------------------------------
+[SourceDisksFiles]
+[SourceDisksNames]
+[DeviceList]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2060
+
+[DeviceList.NTamd64]
+%DESCRIPTION%=DriverInstall, USB\VID_03EB&PID_2060
 
-[Strings] 
-COMPANY="LUFA Library"
-MFGNAME="Dean Camera"
-Modem3="USB Virtual Serial Port" 
-SERVICE="USB Virtual Serial Port CDC Driver"
\ No newline at end of file
+
+;------------------------------------------------------------------------------
+;  String Definitions
+;------------------------------------------------------------------------------
+;Modify these strings to customize your device
+;------------------------------------------------------------------------------
+[Strings]
+MFGFILENAME="CDC_vista"
+DRIVERFILENAME ="usbser"
+MFGNAME="CCS, Inc."
+INSTDISK="LUFA Benito Programmer Driver Installer"
+DESCRIPTION="Communications Port"
+SERVICE="USB RS-232 Emulation Driver"
\ No newline at end of file
diff --git a/Projects/Benito/Descriptors.c b/Projects/Benito/Descriptors.c
index cab20326fa8728a04d04d6f9d7066dec2dc05f1b..9e08a41b282f8665d88b6af7846047cdf4bb9a5a 100644
--- a/Projects/Benito/Descriptors.c
+++ b/Projects/Benito/Descriptors.c
@@ -54,8 +54,8 @@ USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
 	.Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
 		
 	.VendorID               = 0x03EB,
-	.ProductID              = 0x204B,
-	.ReleaseNumber          = 0x0001,
+	.ProductID              = 0x2060,
+	.ReleaseNumber          = 0x0000,
 		
 	.ManufacturerStrIndex   = 0x01,
 	.ProductStrIndex        = 0x02,