diff --git a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
index c923ca3930..45613197f1 100644
--- a/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
+++ b/Demos/Host/LowLevel/StillImageHost/StillImageHost.c
@@ -215,11 +215,11 @@ void StillImage_Task(void)
 			DeviceInfoPos +=  8;                                          // Skip to VendorExtensionDesc String
 			DeviceInfoPos += (1 + UNICODE_STRING_LENGTH(*DeviceInfoPos)); // Skip over VendorExtensionDesc String
 			DeviceInfoPos +=  2;                                          // Skip over FunctionalMode
-			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over OperationCode Array
-			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over EventCode Array
-			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over DevicePropCode Array
-			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over ObjectFormatCode Array
-			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over ObjectFormatCode Array
+			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over Supported Operations Array
+			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over Supported Events Array
+			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over Supported Device Properties Array
+			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over Capture Formats Array
+			DeviceInfoPos += (4 + (*(uint32_t*)DeviceInfoPos << 1));      // Skip over Image Formats Array
 			
 			/* Extract and convert the Manufacturer Unicode string to ASCII and print it through the USART */
 			char Manufacturer[*DeviceInfoPos];
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index 38ea5c9125..7a0dbd62c6 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Supported board hardware defines.
  *
  *  This file contains constants which can be passed to the compiler (via setting the macro BOARD) in the
  *  user project makefile using the -D option to configure the library board-specific drivers.
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 2ddb58c8c0..f64de8ff8c 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Common library convenience macros and functions.
  *
  *  This file contains macros which are common to all library elements, and which may be useful in user code. It
  *  also includes other common headers, such as Atomic.h, FunctionAttributes.h and BoardTypes.h.
diff --git a/LUFA/Common/FunctionAttributes.h b/LUFA/Common/FunctionAttributes.h
index 4ed876d02d..a3c9a8a3a8 100644
--- a/LUFA/Common/FunctionAttributes.h
+++ b/LUFA/Common/FunctionAttributes.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief AVR-GCC special function attribute macros.
  *
  *  This file contains macros for applying GCC specific attributes to functions to control various optimizer
  *  and code generation features of the compiler. Attributes may be placed in the function prototype in any
diff --git a/LUFA/Doxygen.conf b/LUFA/Doxygen.conf
index 387cd34db4..9c243d85a9 100644
--- a/LUFA/Doxygen.conf
+++ b/LUFA/Doxygen.conf
@@ -811,7 +811,7 @@ HTML_FOOTER            =
 # the style sheet file to the HTML output directory, so don't put your own
 # stylesheet in the HTML output directory as well, or it will be erased!
 
-HTML_STYLESHEET        =
+HTML_STYLESHEET        = Doxygen.css
 
 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
 # page will contain the date and time when the page was generated. Setting
diff --git a/LUFA/Doxygen.css b/LUFA/Doxygen.css
new file mode 100644
index 0000000000..b04ba60dec
--- /dev/null
+++ b/LUFA/Doxygen.css
@@ -0,0 +1,547 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+	font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+	font-size: 12px;
+}
+
+/* @group Heading Levels */
+
+h1 {
+	text-align: center;
+	font-size: 150%;
+}
+
+h2 {
+	font-size: 120%;
+}
+
+h3 {
+	font-size: 100%;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	padding: 2px;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #153788;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #1b77c5;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #6666cc;
+	color: #ffffff;
+	border: 1px double #9295C2;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code {
+	color: #3030f0;
+}
+
+a.codeRef {
+	color: #3030f0;
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+.fragment {
+	font-family: monospace, fixed;
+	font-size: 105%;
+}
+
+pre.fragment {
+	border: 1px solid #CCCCCC;
+	background-color: #f5f5f5;
+	padding: 4px 6px;
+	margin: 4px 8px 4px 2px;
+	overflow: auto;
+	word-wrap: break-word;
+	font-size:  9pt;
+	line-height: 125%;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	margin-bottom: 6px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background: white;
+	color: black;
+	margin-right: 20px;
+	margin-left: 20px;
+}
+
+td.indexkey {
+	background-color: #e8eef2;
+	font-weight: bold;
+	border: 1px solid #CCCCCC;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+}
+
+td.indexvalue {
+	background-color: #e8eef2;
+	border: 1px solid #CCCCCC;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #f0f0f0;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+/* @end */
+
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #84b0c7;
+}
+
+th.dirtab {
+	background: #e8eef2;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #666;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #FAFAFA;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+	border-top: 1px solid #ccc;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memTemplParams {
+	color: #606060;
+        white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #606060;
+	font-weight: normal;
+	margin-left: 3px;
+}
+
+.memnav {
+	background-color: #e8eef2;
+	border: 1px solid #84b0c7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+}
+
+.memname {
+        white-space: nowrap;
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memproto {
+        border-top: 1px solid #84b0c7;          
+        border-left: 1px solid #84b0c7;         
+        border-right: 1px solid #84b0c7; 
+        padding: 0;
+        background-color: #d5e1e8;
+        font-weight: bold;
+        /* firefox specific markup */
+        background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 8px;
+        -moz-border-radius-topleft: 8px;
+        /* webkit specific markup */
+        background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 8px;
+        -webkit-border-top-left-radius: 8px;
+
+}
+
+.memdoc {
+        border-bottom: 1px solid #84b0c7;      
+        border-left: 1px solid #84b0c7;      
+        border-right: 1px solid #84b0c7; 
+        padding: 2px 5px;
+        background-color: #eef3f5;
+        border-top-width: 0;
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 8px;
+        -moz-border-radius-bottomright: 8px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 8px;
+        -webkit-border-bottom-right-radius: 8px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+
+/* @end */
+
+/* @group Directory (tree) */
+
+/* for the tree view */
+
+.ftvtree {
+	font-family: sans-serif;
+	margin: 0.5em;
+}
+
+/* these are for tree view when used as main index */
+
+.directory {
+	font-size: 9pt;
+	font-weight: bold;
+}
+
+.directory h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+/*
+The following two styles can be used to replace the root node title
+with an image of your choice.  Simply uncomment the next two styles,
+specify the name of your image and be sure to set 'height' to the
+proper pixel height of your image.
+*/
+
+/*
+.directory h3.swap {
+	height: 61px;
+	background-repeat: no-repeat;
+	background-image: url("yourimage.gif");
+}
+.directory h3.swap span {
+	display: none;
+}
+*/
+
+.directory > h3 {
+	margin-top: 0;
+}
+
+.directory p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory div {
+	display: none;
+	margin: 0px;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+/* these are for tree view when not used as main index */
+
+.directory-alt {
+	font-size: 100%;
+	font-weight: bold;
+}
+
+.directory-alt h3 {
+	margin: 0px;
+	margin-top: 1em;
+	font-size: 11pt;
+}
+
+.directory-alt > h3 {
+	margin-top: 0;
+}
+
+.directory-alt p {
+	margin: 0px;
+	white-space: nowrap;
+}
+
+.directory-alt div {
+	display: none;
+	margin: 0px;
+}
+
+.directory-alt img {
+	vertical-align: -30%;
+}
+
+/* @end */
+
+address {
+	font-style: normal;
+	color: #333;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #153788;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #254798;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+	text-align:left;
+}
+
+
+p {padding-left: 20px;}
\ No newline at end of file
diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h b/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
index af95a894b7..fc76871fcd 100644
--- a/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
+++ b/LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Buttons driver header for the ATAVRUSBRF01.
+ *  \brief Board specific Buttons driver header for the ATAVRUSBRF01.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
index 2208f2e401..33ffab4e5e 100644
--- a/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
+++ b/LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the ATAVRUSBRF01.
+ *  \brief Board specific LED driver header for the ATAVRUSBRF01.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/BUMBLEB/Buttons.h b/LUFA/Drivers/Board/BUMBLEB/Buttons.h
index e0a5cc5a9a..a3b0c5d9cf 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Buttons.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Buttons.h
@@ -29,9 +29,10 @@
 */
 
 /** \file
+ *  \brief Board specific Buttons driver header for the BUMBLEB.
  *
- *  Board specific Buttons driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
- *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
+ *  The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
+ *  external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/BUMBLEB/Joystick.h b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
index 5d57ec5597..9fa4feda83 100644
--- a/LUFA/Drivers/Board/BUMBLEB/Joystick.h
+++ b/LUFA/Drivers/Board/BUMBLEB/Joystick.h
@@ -29,9 +29,10 @@
 */
 
 /** \file
+ *  \brief Board specific joystick driver header for the BUMLEB.
  *
- *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
- *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
+ *  The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
+ *  external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
  *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
@@ -40,7 +41,7 @@
 /** \ingroup Group_Joystick
  *  @defgroup Group_Joystick_BUMBLEB BUMBLEB
  *
- *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board
+ *  Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
  *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
diff --git a/LUFA/Drivers/Board/BUMBLEB/LEDs.h b/LUFA/Drivers/Board/BUMBLEB/LEDs.h
index 549bbde62a..5e2fa547ed 100644
--- a/LUFA/Drivers/Board/BUMBLEB/LEDs.h
+++ b/LUFA/Drivers/Board/BUMBLEB/LEDs.h
@@ -29,9 +29,10 @@
 */
 
 /** \file
+ *  \brief Board specific LED driver header for the BUMBLEB.
  *
- *  Board specific LED driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board
- *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.
+ *  The BUMBLEB third-party board does not include any on-board peripherals, but does have an officially recommended
+ *  external peripheral layout for buttons, LEDs and a Joystick.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h
index d908fd43a4..40ed384a70 100644
--- a/LUFA/Drivers/Board/Buttons.h
+++ b/LUFA/Drivers/Board/Buttons.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the board digital button driver.
  *
  *  This file is the master dispatch header file for the board-specific Buttons driver, for boards containing
  *  physical pushbuttons connected to the AVR's GPIO pins.
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index 762142c33c..d55774d872 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the board dataflash IC driver.
  *
  *  This file is the master dispatch header file for the board-specific dataflash driver, for boards containing
  *  dataflash ICs for external non-volatile storage.
diff --git a/LUFA/Drivers/Board/EVK527/AT45DB321C.h b/LUFA/Drivers/Board/EVK527/AT45DB321C.h
index ada314d255..03caf17b02 100644
--- a/LUFA/Drivers/Board/EVK527/AT45DB321C.h
+++ b/LUFA/Drivers/Board/EVK527/AT45DB321C.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash commands header for the AT45DB321C as mounted on the EVK527.
+ *  \brief Board specific Dataflash commands header for the AT45DB321C as mounted on the EVK527.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/EVK527/Buttons.h b/LUFA/Drivers/Board/EVK527/Buttons.h
index 0150fa151e..bcd2e9f0e4 100644
--- a/LUFA/Drivers/Board/EVK527/Buttons.h
+++ b/LUFA/Drivers/Board/EVK527/Buttons.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Buttons driver header for the EVK527.
+ *  \brief Board specific Buttons driver header for the EVK527.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/EVK527/Dataflash.h b/LUFA/Drivers/Board/EVK527/Dataflash.h
index 25a338cec3..e8e310c97e 100644
--- a/LUFA/Drivers/Board/EVK527/Dataflash.h
+++ b/LUFA/Drivers/Board/EVK527/Dataflash.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash driver header for the EVK527.
+ *  \brief Board specific Dataflash driver header for the EVK527.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/EVK527/Joystick.h b/LUFA/Drivers/Board/EVK527/Joystick.h
index 7d208ea9fd..d270d4d8fa 100644
--- a/LUFA/Drivers/Board/EVK527/Joystick.h
+++ b/LUFA/Drivers/Board/EVK527/Joystick.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific joystick driver header for the EVK527.
+ *  \brief Board specific joystick driver header for the EVK527.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
  *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
diff --git a/LUFA/Drivers/Board/EVK527/LEDs.h b/LUFA/Drivers/Board/EVK527/LEDs.h
index ea7c7c2c71..36f0ce6a66 100644
--- a/LUFA/Drivers/Board/EVK527/LEDs.h
+++ b/LUFA/Drivers/Board/EVK527/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the EVK527.
+ *  \brief Board specific LED driver header for the EVK527.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h
index 39375a265f..18993c5f77 100644
--- a/LUFA/Drivers/Board/Joystick.h
+++ b/LUFA/Drivers/Board/Joystick.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the board digital joystick driver.
  *
  *  This file is the master dispatch header file for the board-specific Joystick driver, for boards containing a
  *  5-way joystick.
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index ce4ba54f47..36ab3e4dc7 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the board LEDs driver.
  *
  *  This file is the master dispatch header file for the board-specific LED driver, for boards containing user
  *  controllable LEDs.
diff --git a/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h b/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
index d095d6e0f0..ec3fedcf61 100644
--- a/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
+++ b/LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the RZUSBSTICK.
+ *  \brief Board specific LED driver header for the RZUSBSTICK.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/STK525/AT45DB321C.h b/LUFA/Drivers/Board/STK525/AT45DB321C.h
index e29a0a5eb0..31ebe3902c 100644
--- a/LUFA/Drivers/Board/STK525/AT45DB321C.h
+++ b/LUFA/Drivers/Board/STK525/AT45DB321C.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash commands header for the AT45DB321C as mounted on the STK525.
+ *  \brief Board specific Dataflash commands header for the AT45DB321C as mounted on the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/STK525/Buttons.h b/LUFA/Drivers/Board/STK525/Buttons.h
index f3dccafd9a..cf9b5b1f5e 100644
--- a/LUFA/Drivers/Board/STK525/Buttons.h
+++ b/LUFA/Drivers/Board/STK525/Buttons.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Buttons driver header for the STK525.
+ *  \brief Board specific Buttons driver header for the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/STK525/Dataflash.h b/LUFA/Drivers/Board/STK525/Dataflash.h
index f541edbb75..757923e6ce 100644
--- a/LUFA/Drivers/Board/STK525/Dataflash.h
+++ b/LUFA/Drivers/Board/STK525/Dataflash.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash driver header for the STK525.
+ *  \brief Board specific Dataflash driver header for the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/STK525/Joystick.h b/LUFA/Drivers/Board/STK525/Joystick.h
index 6358f957e6..7a29ffd806 100644
--- a/LUFA/Drivers/Board/STK525/Joystick.h
+++ b/LUFA/Drivers/Board/STK525/Joystick.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific joystick driver header for the STK525.
+ *  \brief Board specific joystick driver header for the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
  *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
diff --git a/LUFA/Drivers/Board/STK525/LEDs.h b/LUFA/Drivers/Board/STK525/LEDs.h
index b54a8c987d..1f30dbe5c6 100644
--- a/LUFA/Drivers/Board/STK525/LEDs.h
+++ b/LUFA/Drivers/Board/STK525/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the STK525.
+ *  \brief Board specific LED driver header for the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/STK526/AT45DB642D.h b/LUFA/Drivers/Board/STK526/AT45DB642D.h
index bf2973ef3a..b034413569 100644
--- a/LUFA/Drivers/Board/STK526/AT45DB642D.h
+++ b/LUFA/Drivers/Board/STK526/AT45DB642D.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash commands header for the AT45DB642D as mounted on the STK526.
+ *  \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the STK526.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/STK526/Buttons.h b/LUFA/Drivers/Board/STK526/Buttons.h
index f480560f65..650d894d42 100644
--- a/LUFA/Drivers/Board/STK526/Buttons.h
+++ b/LUFA/Drivers/Board/STK526/Buttons.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Buttons driver header for the STK526.
+ *  \brief Board specific Buttons driver header for the STK526.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/STK526/Dataflash.h b/LUFA/Drivers/Board/STK526/Dataflash.h
index 9d04afe4c5..d3bb968e26 100644
--- a/LUFA/Drivers/Board/STK526/Dataflash.h
+++ b/LUFA/Drivers/Board/STK526/Dataflash.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash driver header for the STK525.
+ *  \brief Board specific Dataflash driver header for the STK525.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/STK526/Joystick.h b/LUFA/Drivers/Board/STK526/Joystick.h
index b095536aa7..ed74b47562 100644
--- a/LUFA/Drivers/Board/STK526/Joystick.h
+++ b/LUFA/Drivers/Board/STK526/Joystick.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific joystick driver header for the STK526.
+ *  \brief Board specific joystick driver header for the STK526.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
  *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
diff --git a/LUFA/Drivers/Board/STK526/LEDs.h b/LUFA/Drivers/Board/STK526/LEDs.h
index d1ac493adb..96cd7f0f74 100644
--- a/LUFA/Drivers/Board/STK526/LEDs.h
+++ b/LUFA/Drivers/Board/STK526/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the STK526.
+ *  \brief Board specific LED driver header for the STK526.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/TEENSY/LEDs.h b/LUFA/Drivers/Board/TEENSY/LEDs.h
index 755d578ed4..6e58174a6b 100644
--- a/LUFA/Drivers/Board/TEENSY/LEDs.h
+++ b/LUFA/Drivers/Board/TEENSY/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the PJRC Teensy series boards.
+ *  \brief Board specific LED driver header for the PJRC Teensy boards.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h
index 7a5af367b9..75f56179dc 100644
--- a/LUFA/Drivers/Board/Temperature.h
+++ b/LUFA/Drivers/Board/Temperature.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the board temperature sensor driver.
  *
  *  Temperature sensor board driver for the USB boards which contain a temperature sensor.
  */
diff --git a/LUFA/Drivers/Board/USBKEY/AT45DB642D.h b/LUFA/Drivers/Board/USBKEY/AT45DB642D.h
index a9f48f0830..9d333067c9 100644
--- a/LUFA/Drivers/Board/USBKEY/AT45DB642D.h
+++ b/LUFA/Drivers/Board/USBKEY/AT45DB642D.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash commands header for the AT45DB642D as mounted on the USBKEY.
+ *  \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the USBKEY.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/USBKEY/Buttons.h b/LUFA/Drivers/Board/USBKEY/Buttons.h
index db1391c8e1..f54ecbe06d 100644
--- a/LUFA/Drivers/Board/USBKEY/Buttons.h
+++ b/LUFA/Drivers/Board/USBKEY/Buttons.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Buttons driver header for the USBKEY.
+ *  \brief Board specific Buttons driver header for the USBKEY.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver
  *        dispatch header located in LUFA/Drivers/Board/Buttons.h.
diff --git a/LUFA/Drivers/Board/USBKEY/Dataflash.h b/LUFA/Drivers/Board/USBKEY/Dataflash.h
index 96cc3ad2d5..95cd55b4e9 100644
--- a/LUFA/Drivers/Board/USBKEY/Dataflash.h
+++ b/LUFA/Drivers/Board/USBKEY/Dataflash.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash driver header for the USBKEY.
+ *  \brief Board specific Dataflash driver header for the USBKEY.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/USBKEY/Joystick.h b/LUFA/Drivers/Board/USBKEY/Joystick.h
index b0829914b0..06cbac07a6 100644
--- a/LUFA/Drivers/Board/USBKEY/Joystick.h
+++ b/LUFA/Drivers/Board/USBKEY/Joystick.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific joystick driver header for the USBKEY.
+ *  \brief Board specific joystick driver header for the USBKEY.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver
  *        dispatch header located in LUFA/Drivers/Board/Joystick.h.
diff --git a/LUFA/Drivers/Board/USBKEY/LEDs.h b/LUFA/Drivers/Board/USBKEY/LEDs.h
index e1a5b23147..fc4c3c9b59 100644
--- a/LUFA/Drivers/Board/USBKEY/LEDs.h
+++ b/LUFA/Drivers/Board/USBKEY/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the USBKEY.
+ *  \brief Board specific LED driver header for the USBKEY.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Board/XPLAIN/AT45DB642D.h b/LUFA/Drivers/Board/XPLAIN/AT45DB642D.h
index 1df0b4083e..20e2f01c22 100644
--- a/LUFA/Drivers/Board/XPLAIN/AT45DB642D.h
+++ b/LUFA/Drivers/Board/XPLAIN/AT45DB642D.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash commands header for the AT45DB642D as mounted on the XPLAIN.
+ *  \brief Board specific Dataflash commands header for the AT45DB642D as mounted on the XPLAIN.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
index a0e09c711b..9bd0c9a06f 100644
--- a/LUFA/Drivers/Board/XPLAIN/Dataflash.h
+++ b/LUFA/Drivers/Board/XPLAIN/Dataflash.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific Dataflash driver header for the XPLAIN.
+ *  \brief Board specific Dataflash driver header for the XPLAIN.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the dataflash driver
  *        dispatch header located in LUFA/Drivers/Board/Dataflash.h.
diff --git a/LUFA/Drivers/Board/XPLAIN/LEDs.h b/LUFA/Drivers/Board/XPLAIN/LEDs.h
index add868d20b..d4696d1061 100644
--- a/LUFA/Drivers/Board/XPLAIN/LEDs.h
+++ b/LUFA/Drivers/Board/XPLAIN/LEDs.h
@@ -29,8 +29,7 @@
 */
 
 /** \file
- *
- *  Board specific LED driver header for the XPLAIN.
+ *  \brief Board specific LED driver header for the XPLAIN.
  *
  *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver
  *        dispatch header located in LUFA/Drivers/Board/LEDs.h.
diff --git a/LUFA/Drivers/Misc/TerminalCodes.h b/LUFA/Drivers/Misc/TerminalCodes.h
index 216d8b98b0..a5f397aeb5 100644
--- a/LUFA/Drivers/Misc/TerminalCodes.h
+++ b/LUFA/Drivers/Misc/TerminalCodes.h
@@ -29,10 +29,10 @@
 */
 
 /** \file
+ *  \brief ANSI terminal special escape code macros.
  *
  *  ANSI terminal compatible escape sequences. These escape sequences are designed to be concatenated with existing
  *  strings to modify their display on a compatible terminal application.
- *
  */
  
 /** \ingroup Group_MiscDrivers
diff --git a/LUFA/Drivers/Peripheral/ADC.h b/LUFA/Drivers/Peripheral/ADC.h
index 982364368f..e3840fe845 100644
--- a/LUFA/Drivers/Peripheral/ADC.h
+++ b/LUFA/Drivers/Peripheral/ADC.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the ADC peripheral driver.
  *
  *  This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
  *
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h
index 9ab65af53f..e307c4e093 100644
--- a/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief ADC peripheral driver for the U7, U6 and U4 USB AVRs.
  *
  *  ADC driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
  *
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
deleted file mode 100644
index 3440cc9f10..0000000000
--- a/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2010.
-              
-  dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
-*/
-
-/*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this 
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in 
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting 
-  documentation, and that the name of the author not be used in 
-  advertising or publicity pertaining to distribution of the 
-  software without specific, written prior permission.
-
-  The author disclaim all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *
- *  SPI driver for the 8-bit AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the SPI driver
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
- */
- 
-/** \ingroup Group_SPI
- *  @defgroup Group_SPI_AVR8 8-Bit AVR SPI Driver
- *
- *  SPI driver for the 8-bit AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
- *
- *  @{
- */
-
-#ifndef __SPI_AVR8_H__
-#define __SPI_AVR8_H__
-
-	/* Includes: */
-		#include <stdbool.h>
-
-	/* Preprocessor Checks: */
-		#if !defined(__INCLUDE_FROM_SPI_H)
-			#error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.
-		#endif
-
-	/* Enable C linkage for C++ Compilers: */
-		#if defined(__cplusplus)
-			extern "C" {
-		#endif
-
-	/* Private Interface - For use in library only: */
-	#if !defined(__DOXYGEN__)
-		/* Macros: */
-			#define SPI_USE_DOUBLESPEED            (1 << SPE)
-	#endif
-	
-	/* Public Interface - May be used in end-application: */
-		/* Macros: */
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */
-			#define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 4. */
-			#define SPI_SPEED_FCPU_DIV_4           0
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 8. */
-			#define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 16. */
-			#define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */
-			#define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 64. */
-			#define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
-
-			/** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */
-			#define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))
-			
-			/** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */
-			#define SPI_SCK_LEAD_RISING            (0 << CPOL)
-
-			/** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */
-			#define SPI_SCK_LEAD_FALLING           (1 << CPOL)
-
-			/** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */
-			#define SPI_SAMPLE_LEADING             (0 << CPHA)
-
-			/** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
-			#define SPI_SAMPLE_TRAILING            (1 << CPHA)
-			
-			/** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
-			#define SPI_MODE_SLAVE                 (0 << MSTR)
-
-			/** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
-			#define SPI_MODE_MASTER                (1 << MSTR)
-
-		/* Inline Functions: */
-			/** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
-			 *  SPI routines.
-			 *
-			 *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,
-			 *                         SPI_SCK_*, SPI_SAMPLE_* and SPI_MODE_* masks
-			 */
-			static inline void SPI_Init(const uint8_t SPIOptions)
-			{
-				DDRB  |= ((1 << 1) | (1 << 2));
-				PORTB |= ((1 << 0) | (1 << 3));
-				
-				SPCR   = ((1 << SPE) | SPIOptions);
-				
-				if (SPIOptions & SPI_USE_DOUBLESPEED)
-				  SPSR |= (1 << SPI2X);
-				else
-				  SPSR &= ~(1 << SPI2X);
-			}
-			
-			/** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */
-			static inline void SPI_ShutDown(void)
-			{
-				DDRB  &= ~((1 << 1) | (1 << 2));
-				PORTB &= ~((1 << 0) | (1 << 3));
-				
-				SPCR   = 0;
-				SPSR   = 0;
-			}
-			
-			/** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
-			 *
-			 *  \param[in] Byte  Byte to send through the SPI interface
-			 *
-			 *  \return Response byte from the attached SPI device
-			 */
-			static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
-			static inline uint8_t SPI_TransferByte(const uint8_t Byte)
-			{
-				SPDR = Byte;
-				while (!(SPSR & (1 << SPIF)));
-				return SPDR;
-			}
-
-			/** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
-			 *  byte sent to from the attached SPI device is ignored.
-			 *
-			 *  \param[in] Byte Byte to send through the SPI interface
-			 */
-			static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
-			static inline void SPI_SendByte(const uint8_t Byte)
-			{
-				SPDR = Byte;
-				while (!(SPSR & (1 << SPIF)));
-			}
-
-			/** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response
-			 *  byte from the attached SPI device is returned.
-			 *
-			 *  \return The response byte from the attached SPI device
-			 */
-			static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
-			static inline uint8_t SPI_ReceiveByte(void)
-			{
-				SPDR = 0x00;
-				while (!(SPSR & (1 << SPIF)));
-				return SPDR;
-			}
-
-	/* Disable C linkage for C++ Compilers: */
-		#if defined(__cplusplus)
-			}
-		#endif
-		
-#endif
-
-/** @} */
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
deleted file mode 100644
index 0421dea739..0000000000
--- a/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2010.
-              
-  dean [at] fourwalledcubicle [dot] com
-      www.fourwalledcubicle.com
-*/
-
-/*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this 
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in 
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting 
-  documentation, and that the name of the author not be used in 
-  advertising or publicity pertaining to distribution of the 
-  software without specific, written prior permission.
-
-  The author disclaim all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *
- *  ADC driver for the 8-bit AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the USART driver
- *        dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
- */
- 
-/** \ingroup Group_Serial
- *  @defgroup Group_Serial_AVR8 8-Bit AVR Serial Driver
- *
- *  Serial driver for the 8-bit AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
- *        dispatch header located in LUFA/Drivers/Peripheral/USART.h.
- *
- *  @{
- */
- 
-#ifndef __SERIAL_AVR8_H__
-#define __SERIAL_AVR8_H__
-
-	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/pgmspace.h>
-		#include <stdbool.h>
-		
-	/* Preprocessor Checks: */
-		#if !defined(__INCLUDE_FROM_SERIAL_H)
-			#error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
-		#endif
-
-	/* Public Interface - May be used in end-application: */
-		/* Macros: */
-			/** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
-			 *  not set.
-			 */
-			#define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)
-
-			/** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
-			 *  set.
-			 */
-			#define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
-
-		/* Pseudo-Function Macros: */
-			#if defined(__DOXYGEN__)
-				/** Indicates whether a character has been received through the USART.
-				 *
-				 *  \return Boolean true if a character has been received, false otherwise
-				 */
-				static inline bool Serial_IsCharReceived(void);
-			#else
-				#define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)
-			#endif
-
-		/* Inline Functions: */
-			/** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
-			 *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
-			 *
-			 *  \param[in] BaudRate     Serial baud rate, in bits per second
-			 *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate
-			 */
-			static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)
-			{
-				UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
-				UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
-				UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
-				
-				DDRD  |= (1 << 3);	
-				PORTD |= (1 << 2);
-				
-				UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
-			}
-
-			/** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
-			static inline void Serial_ShutDown(void)
-			{
-				UCSR1A = 0;
-				UCSR1B = 0;
-				UCSR1C = 0;
-				
-				DDRD  &= ~(1 << 3);	
-				PORTD &= ~(1 << 2);
-				
-				UBRR1  = 0;
-			}
-			
-			/** Transmits a given byte through the USART.
-			 *
-			 *  \param[in] DataByte  Byte to transmit through the USART
-			 */
-			static inline void Serial_TxByte(const char DataByte)
-			{
-				while (!(UCSR1A & (1 << UDRE1)));
-				UDR1 = DataByte;
-			}
-
-			/** Receives a byte from the USART.
-			 *
-			 *  \return Byte received from the USART
-			 */
-			static inline uint8_t Serial_RxByte(void)
-			{
-				while (!(UCSR1A & (1 << RXC1)));
-				return UDR1; 
-			}
-
-	/* Disable C linkage for C++ Compilers: */
-		#if defined(__cplusplus)
-			}
-		#endif
-		
-#endif
-
-/** @} */
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
index 2d8e6df1e8..990b44d144 100644
--- a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief TWI peripheral driver for the U7, U6 and U4 USB AVRs.
  *
  *  Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
  *
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/SPI.h
index 6416ceae65..041c0788ef 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/SPI.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the SPI peripheral driver.
  *
  *  Hardware SPI subsystem driver for the supported USB AVRs models.
  */
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/Serial.h
index d00f9c1c02..662d7f2701 100644
--- a/LUFA/Drivers/Peripheral/Serial.h
+++ b/LUFA/Drivers/Peripheral/Serial.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the USART peripheral driver.
  *
  *  Driver for the USART subsystem on supported USB AVRs.
  */
diff --git a/LUFA/Drivers/Peripheral/SerialStream.h b/LUFA/Drivers/Peripheral/SerialStream.h
index feadd0a0ff..85bdf9085c 100644
--- a/LUFA/Drivers/Peripheral/SerialStream.h
+++ b/LUFA/Drivers/Peripheral/SerialStream.h
@@ -29,11 +29,13 @@
 */
 
 /** \file
+ *  \brief Standard avr-libc character stream driver for the USART.
  *
  *  Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
- *  regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the
+ *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
+ *  puts, etc.) to work with the
  *  USART.
- **/
+ */
 
 /** \ingroup Group_PeripheralDrivers
  *  @defgroup Group_SerialStream Serial Stream Driver - LUFA/Drivers/Peripheral/SerialStream.h
@@ -44,7 +46,8 @@
  *
  *  \section Module Description
  *  Serial stream driver for the USART subsystem on supported USB AVRs. This makes use of the functions in the
- *  regular USART driver, but allows the avr-libc standard stream functions (printf, puts, etc.) to work with the
+ *  regular USART driver (see \ref Group_Serial), but allows the avr-libc standard stream functions (printf,
+ *  puts, etc.) to work with the
  *  USART.
  *
  *  @{
diff --git a/LUFA/Drivers/Peripheral/TWI.h b/LUFA/Drivers/Peripheral/TWI.h
index 29c0afe408..8e2127d477 100644
--- a/LUFA/Drivers/Peripheral/TWI.h
+++ b/LUFA/Drivers/Peripheral/TWI.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Master include file for the TWI peripheral driver.
  *
  *  This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
  *
diff --git a/LUFA/Drivers/USB/Class/Audio.h b/LUFA/Drivers/USB/Class/Audio.h
index c6a926337f..3c7e66535e 100644
--- a/LUFA/Drivers/USB/Class/Audio.h
+++ b/LUFA/Drivers/USB/Class/Audio.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB Audio Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassAudio Audio Class Driver - LUFA/Drivers/Class/Audio.h
  *
diff --git a/LUFA/Drivers/USB/Class/CDC.h b/LUFA/Drivers/USB/Class/CDC.h
index cc49572b2a..22e5343683 100644
--- a/LUFA/Drivers/USB/Class/CDC.h
+++ b/LUFA/Drivers/USB/Class/CDC.h
@@ -28,8 +28,15 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB CDC-ACM Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassCDC CDC Class Driver - LUFA/Drivers/Class/CDC.h
+ *  @defgroup Group_USBClassCDC CDC-ACM (Virtual Serial) Class Driver - LUFA/Drivers/Class/CDC.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index 5d19b6f420..a6a1b40701 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB Audio Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
+ */
+
 /** \ingroup Group_USBClassAudio
  *  @defgroup Group_USBClassAudioCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/CDC.h b/LUFA/Drivers/USB/Class/Common/CDC.h
index 55f530ba97..bb1996b6c2 100644
--- a/LUFA/Drivers/USB/Class/Common/CDC.h
+++ b/LUFA/Drivers/USB/Class/Common/CDC.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB CDC Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
+ */
+
 /** \ingroup Group_USBClassCDC
  *  @defgroup Group_USBClassCDCCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index 33a5af4ac5..cf457cb86d 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB HID Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/HID.h.
+ */
+
 /** \ingroup Group_USBClassHID
  *  @defgroup Group_USBClassHIDCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 755006a709..72a72de38b 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB MIDI Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
+ */
+
 /** \ingroup Group_USBClassMIDI
  *  @defgroup Group_USBClassMIDICommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/MassStorage.h b/LUFA/Drivers/USB/Class/Common/MassStorage.h
index 8726148a2a..7f321350f2 100644
--- a/LUFA/Drivers/USB/Class/Common/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Common/MassStorage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB Mass Storage Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
+ */
+
 /** \ingroup Group_USBClassMS
  *  @defgroup Group_USBClassMSCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/Printer.h b/LUFA/Drivers/USB/Class/Common/Printer.h
index 06ec0bb0bc..f78cbaafa1 100644
--- a/LUFA/Drivers/USB/Class/Common/Printer.h
+++ b/LUFA/Drivers/USB/Class/Common/Printer.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB Printer Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Printer.h.
+ */
+
 /** \ingroup Group_USBClassMS
  *  @defgroup Group_USBClassPrinterCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/RNDIS.h b/LUFA/Drivers/USB/Class/Common/RNDIS.h
index 258604debe..b69142c985 100644
--- a/LUFA/Drivers/USB/Class/Common/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Common/RNDIS.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB RNDIS Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
+ */
+
 /** \ingroup Group_USBClassRNDIS
  *  @defgroup Group_USBClassRNDISCommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Common/RNDISConstants.h b/LUFA/Drivers/USB/Class/Common/RNDISConstants.h
index 67fa78a0d1..b65040e1b1 100644
--- a/LUFA/Drivers/USB/Class/Common/RNDISConstants.h
+++ b/LUFA/Drivers/USB/Class/Common/RNDISConstants.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common RNDIS class constant definitions.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
+ */
+
 /** \file
  *
  *  RNDIS specification related constants. For more information on these
diff --git a/LUFA/Drivers/USB/Class/Common/StillImage.h b/LUFA/Drivers/USB/Class/Common/StillImage.h
index e65b2dbfdb..4b0faac355 100644
--- a/LUFA/Drivers/USB/Class/Common/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Common/StillImage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Common definitions and declarations for the library USB Still Image Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/StillImage.h.
+ */
+
 /** \ingroup Group_USBClassSI
  *  @defgroup Group_USBClassSICommon  Common Class Definitions
  *
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index 87fab98896..9677339ca6 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB Audio Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
+ */
+
 /** \ingroup Group_USBClassAudio
  *  @defgroup Group_USBClassAudioDevice Audio Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 0c214441c4..adf1708ce5 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB CDC Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/CDC.h.
+ */
+
 /** \ingroup Group_USBClassCDC
  *  @defgroup Group_USBClassCDCDevice CDC Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 15b428a7ba..009018437d 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB HID Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/HID.h.
+ */
+
 /** \ingroup Group_USBClassHID
  *  @defgroup Group_USBClassHIDDevice HID Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index 772456bc10..9eaabbc5ed 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB MIDI Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
+ */
+
 /** \ingroup Group_USBClassMIDI
  *  @defgroup Group_USBClassMIDIDevice MIDI Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index 87dcfb2323..67bbfab912 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB Mass Storage Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
+ */
+
 /** \ingroup Group_USBClassMS
  *  @defgroup Group_USBClassMSDevice Mass Storage Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index 7d6b3a8822..5d541f18be 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Device mode driver for the library USB RNDIS Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
+ */
+
 /** \ingroup Group_USBClassRNDIS
  *  @defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/HID.h b/LUFA/Drivers/USB/Class/HID.h
index 5eda33b2a0..3a7fe21213 100644
--- a/LUFA/Drivers/USB/Class/HID.h
+++ b/LUFA/Drivers/USB/Class/HID.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB HID Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassHID HID Class Driver - LUFA/Drivers/Class/HID.h
  *
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index feb6bf87a1..205bb3d578 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB Audio Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Audio.h.
+ */
+
 /** \ingroup Group_USBClassCDC
  *  @defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/HID.h b/LUFA/Drivers/USB/Class/Host/HID.h
index d4ea7ac634..fd0227e6c4 100644
--- a/LUFA/Drivers/USB/Class/Host/HID.h
+++ b/LUFA/Drivers/USB/Class/Host/HID.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB HID Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/HID.h.
+ */
+
 /** \ingroup Group_USBClassHID
  *  @defgroup Group_USBClassHIDHost HID Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.h b/LUFA/Drivers/USB/Class/Host/HIDParser.h
index 6b6549b515..377a8217cb 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Host/HIDParser.h
@@ -29,10 +29,11 @@
 */
 
 /** \file
+ *  \brief USB Human Interface Device (HID) Class report descriptor parser.
  *
- *  USB Human Interface Device (HID) Class report descriptor processing routines. This file allows for the easy
- *  parsing of the complex HID report descriptor, which describes the data that the device transmits to the host.
- *
+ *  This file allows for the easy parsing of the complex HID report descriptor, which describes the data that
+ *  the device transmits to the host. It also provides an easy API for extracting and processing the data
+ *  elements inside a HID report sent from an attached HID device.
  */
  
 /** \ingroup Group_USB
diff --git a/LUFA/Drivers/USB/Class/Host/HIDReportData.h b/LUFA/Drivers/USB/Class/Host/HIDReportData.h
index d3af672c3b..197e62b03b 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDReportData.h
+++ b/LUFA/Drivers/USB/Class/Host/HIDReportData.h
@@ -29,9 +29,9 @@
 */
 
 /** \file
+ *  \brief Constants for HID report item attributes.
  *
- *  Constants for HID report item attributes. Refer to the HID specification for details on each
- *  flag's meaning when applied to an IN, OUT or FEATURE item.
+ *  Refer to the HID specification for details on each flag's meaning when applied to an IN, OUT or FEATURE item.
  */
 
 /** \ingroup Group_HIDParser
diff --git a/LUFA/Drivers/USB/Class/Host/MIDI.h b/LUFA/Drivers/USB/Class/Host/MIDI.h
index 84779a0e88..e0ab9775b5 100644
--- a/LUFA/Drivers/USB/Class/Host/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Host/MIDI.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB MIDI Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MIDI.h.
+ */
+
 /** \ingroup Group_USBClassMIDI
  *  @defgroup Group_USBClassMIDIHost MIDI Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/MassStorage.h b/LUFA/Drivers/USB/Class/Host/MassStorage.h
index 502e9021d4..8868c95156 100644
--- a/LUFA/Drivers/USB/Class/Host/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Host/MassStorage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB Mass Storage Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/MassStorage.h.
+ */
+
 /** \ingroup Group_USBClassMS
  *  @defgroup Group_USBClassMassStorageHost Mass Storage Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/Printer.h b/LUFA/Drivers/USB/Class/Host/Printer.h
index 25b0beb7ee..dc45780c24 100644
--- a/LUFA/Drivers/USB/Class/Host/Printer.h
+++ b/LUFA/Drivers/USB/Class/Host/Printer.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB Printer Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/Printer.h.
+ */
+
 /** \ingroup Group_USBClassPrinter
  *  @defgroup Group_USBClassPrinterHost Printer Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/RNDIS.h b/LUFA/Drivers/USB/Class/Host/RNDIS.h
index f42ed439c0..5641620b7a 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Host/RNDIS.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB RNDIS Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/RNDIS.h.
+ */
+
 /** \ingroup Group_USBClassRNDIS
  *  @defgroup Group_USBClassRNDISHost RNDIS Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.c b/LUFA/Drivers/USB/Class/Host/StillImage.c
index d116ceb743..50be7d6d26 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.c
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.c
@@ -151,7 +151,8 @@ uint8_t SImage_Host_SendBlockHeader(USB_ClassInfo_SI_Host_t* const SIInterfaceIn
 	if ((USB_HostState != HOST_STATE_Configured) || !(SIInterfaceInfo->State.IsActive))
 	  return PIPE_RWSTREAM_DeviceDisconnected;
 
-	PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
+	if (SIInterfaceInfo->State.IsSessionOpen)
+	  PIMAHeader->TransactionID = SIInterfaceInfo->State.TransactionID++;
 
 	Pipe_SelectPipe(SIInterfaceInfo->Config.DataOUTPipeNumber);
 	Pipe_Unfreeze();
diff --git a/LUFA/Drivers/USB/Class/Host/StillImage.h b/LUFA/Drivers/USB/Class/Host/StillImage.h
index a2101262ef..8a37144984 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Host/StillImage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Host mode driver for the library USB Still Image Class driver.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the class driver
+ *        dispatch header located in LUFA/Drivers/USB/Class/StillImage.h.
+ */
+
 /** \ingroup Group_USBClassSI
  *  @defgroup Group_USBClassStillImageHost Still Image Class Host Mode Driver
  *
diff --git a/LUFA/Drivers/USB/Class/MIDI.h b/LUFA/Drivers/USB/Class/MIDI.h
index 41f2916d3d..b77ca543ef 100644
--- a/LUFA/Drivers/USB/Class/MIDI.h
+++ b/LUFA/Drivers/USB/Class/MIDI.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB MIDI Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassMIDI MIDI Class Driver - LUFA/Drivers/Class/MIDI.h
  *
diff --git a/LUFA/Drivers/USB/Class/MassStorage.h b/LUFA/Drivers/USB/Class/MassStorage.h
index ccc48f35b2..8f185d8111 100644
--- a/LUFA/Drivers/USB/Class/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/MassStorage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB Mass Storage Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassMS Mass Storage Class Driver - LUFA/Drivers/Class/MassStorage.h
  *
diff --git a/LUFA/Drivers/USB/Class/Printer.h b/LUFA/Drivers/USB/Class/Printer.h
index 0de231d17c..785bac6257 100644
--- a/LUFA/Drivers/USB/Class/Printer.h
+++ b/LUFA/Drivers/USB/Class/Printer.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB Printer Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassPrinter Printer Class Driver - LUFA/Drivers/Class/Printer.h
  *
diff --git a/LUFA/Drivers/USB/Class/RNDIS.h b/LUFA/Drivers/USB/Class/RNDIS.h
index 8fd6d16c84..cc2b3c09ba 100644
--- a/LUFA/Drivers/USB/Class/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/RNDIS.h
@@ -28,8 +28,15 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB RNDIS Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassRNDIS RNDIS Class Driver - LUFA/Drivers/Class/RNDIS.h
+ *  @defgroup Group_USBClassRNDIS RNDIS (Networking) Class Driver - LUFA/Drivers/Class/RNDIS.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
diff --git a/LUFA/Drivers/USB/Class/StillImage.h b/LUFA/Drivers/USB/Class/StillImage.h
index 1ba5ff77e6..9852e75a98 100644
--- a/LUFA/Drivers/USB/Class/StillImage.h
+++ b/LUFA/Drivers/USB/Class/StillImage.h
@@ -28,6 +28,13 @@
   this software.
 */
 
+/** \file
+ *  \brief Master include file for the library USB Still Image Class driver.
+ *
+ *  This file should be included in all user projects making use of this optional class driver, instead of
+ *  including any headers in the USB/ClassDriver/Device, USB/ClassDriver/Host or USB/ClassDriver/Common subdirectories.
+ */
+
 /** \ingroup Group_USBClassDrivers
  *  @defgroup Group_USBClassSI Still Image Class Driver - LUFA/Drivers/Class/StillImage.h
  *
diff --git a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
index 5e9bc7b5f0..232a9d1114 100644
--- a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
+++ b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
@@ -29,10 +29,14 @@
 */
 
 /** \file
+ *  \brief Configuration descriptor parser API.
  *
- *  Configuration descriptor parser API. This section of the library gives a friendly API which can be used in
- *  host applications to easily parse an attached device's configuration descriptor so that endpoint, interface
- *  and other descriptor data can be extracted and used as needed.
+ *  This section of the library gives a friendly API which can be used in host applications to easily
+ *  parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
+ *  data can be extracted and used as needed.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
  */
 
 /** \ingroup Group_Descriptors
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index ff20752c4b..72c2b7fd21 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -28,6 +28,25 @@
   this software.
 */
 
+/** \file
+ *  \brief USB controller events manager.
+ *
+ *  This file contains macros and functions relating to the management of library events, which are small
+ *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
+ *  multiple places in the user or library code, which may or may not be inside an ISR, thus each handler
+ *  should be written to be as small and fast as possible to prevent possible problems.
+ *
+ *  Events can be hooked by the user application by declaring a handler function with the same name and parameters
+ *  listed here. If an event with no user-associated handler is fired within the library, it by default maps to an
+ *  internal empty stub function.
+ *
+ *  Each event must only have one associated event handler, but can be raised by multiple sources by calling the
+ *  event handler function (with any required event parameters).
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_Events USB Events
  *
diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
index 4090aaa3d5..27fcfe8faf 100644
--- a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
+++ b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h
@@ -28,6 +28,15 @@
   this software.
 */
 
+/** \file
+ *  \brief USB standard descriptor definitions.
+ *
+ *  This file contains structures and macros for the easy creation of standard USB descriptors in USB device projects.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_Descriptors USB Descriptors
  *
diff --git a/LUFA/Drivers/USB/HighLevel/StdRequestType.h b/LUFA/Drivers/USB/HighLevel/StdRequestType.h
index 0db765d282..c823879594 100644
--- a/LUFA/Drivers/USB/HighLevel/StdRequestType.h
+++ b/LUFA/Drivers/USB/HighLevel/StdRequestType.h
@@ -28,11 +28,20 @@
   this software.
 */
 
+/** \file
+ *  \brief USB control endpoint request definitions.
+ *
+ *  This file contains structures and macros for the easy creation and parsing of standard USB control requests.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+ 
 /** \ingroup Group_USB
  *  @defgroup Group_StdRequest Standard USB Requests
  *
  *  This module contains definitions for the various control request parameters, so that the request
- *   details (such as data direction, request recipient, etc.) can be extracted via masking.
+ *  details (such as data direction, request recipient, etc.) can be extracted via masking.
  *
  *  @{
  */
diff --git a/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h b/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
index 777b588fb2..228669e332 100644
--- a/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
+++ b/LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
@@ -27,6 +27,16 @@
   arising out of or in connection with the use or performance of
   this software.
 */
+
+/** \file
+ *  \brief USB endpoint/pipe stream callback management.
+ *
+ *  This file contains definitions for the creation of optional callback routines which can be passed to the
+ *  endpoint and/or pipe stream APIs, to abort the transfer currently in progress when a condition is met.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
  
 /** \ingroup Group_USB
  *  @defgroup Group_StreamCallbacks Endpoint and Pipe Stream Callbacks
diff --git a/LUFA/Drivers/USB/HighLevel/USBInterrupt.h b/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
index f13d945591..c3f778fca8 100644
--- a/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
+++ b/LUFA/Drivers/USB/HighLevel/USBInterrupt.h
@@ -28,6 +28,16 @@
   this software.
 */
 
+/** \file
+ *  \brief USB controller interrupt service routine management.
+ *
+ *  This file contains definitions required for the correct handling of low level USB service routine interrupts
+ *  from the USB controller.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+ 
 #ifndef __USBINTERRUPT_H__
 #define __USBINTERRUPT_H__
 
diff --git a/LUFA/Drivers/USB/HighLevel/USBMode.h b/LUFA/Drivers/USB/HighLevel/USBMode.h
index 4105bc9765..d894bbad76 100644
--- a/LUFA/Drivers/USB/HighLevel/USBMode.h
+++ b/LUFA/Drivers/USB/HighLevel/USBMode.h
@@ -28,6 +28,17 @@
   this software.
 */
 
+/** \file
+ *  \brief USB mode and capability macros.
+ *
+ *  This file defines macros indicating the type of USB controller the library is being compiled for, and its
+ *  capabilities. These macros may then be referenced in the user application to selectively enable or disable
+ *  code sections depending on if they are defined or not.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_USBMode USB Mode Tokens
  *
diff --git a/LUFA/Drivers/USB/HighLevel/USBTask.h b/LUFA/Drivers/USB/HighLevel/USBTask.h
index 6724b87b8c..0b54742410 100644
--- a/LUFA/Drivers/USB/HighLevel/USBTask.h
+++ b/LUFA/Drivers/USB/HighLevel/USBTask.h
@@ -27,7 +27,17 @@
   arising out of or in connection with the use or performance of
   this software.
 */
- 
+
+/** \file
+ *  \brief Main USB service task management.
+ *
+ *  This file contains the function definitions required for the main USB service task, which must be called
+ *  from the user application to ensure that the USB connection to or from a connected USB device is maintained.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 #ifndef __USBTASK_H__
 #define __USBTASK_H__
 
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.h b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
index c7abbd2f44..44913dbb5b 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
@@ -28,6 +28,16 @@
   this software.
 */
 
+/** \file
+ *  \brief USB device standard request management.
+ *
+ *  This file contains the function prototypes neccesary for the processing of incomming standard control requests
+ *  when the library is in USB device mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 #ifndef __DEVCHAPTER9_H__
 #define __DEVCHAPTER9_H__
 
diff --git a/LUFA/Drivers/USB/LowLevel/Device.h b/LUFA/Drivers/USB/LowLevel/Device.h
index 6c8a4b213f..ceb4549348 100644
--- a/LUFA/Drivers/USB/LowLevel/Device.h
+++ b/LUFA/Drivers/USB/LowLevel/Device.h
@@ -27,7 +27,16 @@
   arising out of or in connection with the use or performance of
   this software.
 */
- 
+
+/** \file
+ *  \brief USB device mode definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to USB device mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_Device Device Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h
index ae40867797..389d3c4586 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.h
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h
@@ -28,6 +28,16 @@
   this software.
 */
 
+/** \file
+ *  \brief USB device endpoint management definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to the management of the device's
+ *  data endpoints when the library is initialized in USB device mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_EndpointManagement Endpoint Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/Host.h b/LUFA/Drivers/USB/LowLevel/Host.h
index ea404f2b12..a8a5b0131b 100644
--- a/LUFA/Drivers/USB/LowLevel/Host.h
+++ b/LUFA/Drivers/USB/LowLevel/Host.h
@@ -28,6 +28,15 @@
   this software.
 */
 
+/** \file
+ *  \brief USB host mode definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to USB host mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_Host Host Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/HostChapter9.h b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
index e2132d9349..e38c67e6c7 100644
--- a/LUFA/Drivers/USB/LowLevel/HostChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
@@ -28,6 +28,16 @@
   this software.
 */
 
+/** \file
+ *  \brief USB host standard request management.
+ *
+ *  This file contains the function prototypes neccesary for the issuing of outgoing standard control requests
+ *  when the library is in USB host mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 #ifndef __HOSTCHAPTER9_H__
 #define __HOSTCHAPTER9_H__
 
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.h b/LUFA/Drivers/USB/LowLevel/LowLevel.h
index e99bd1f0ad..04b2c460c9 100644
--- a/LUFA/Drivers/USB/LowLevel/LowLevel.h
+++ b/LUFA/Drivers/USB/LowLevel/LowLevel.h
@@ -28,6 +28,16 @@
   this software.
 */
 
+/** \file
+ *  \brief USB low level USB controller definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to the low level configutation of the
+ *  USB controller, to start, stop and reset the USB library core.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+ 
 /** \ingroup Group_USB
  *  @defgroup Group_USBManagement USB Interface Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/OTG.h b/LUFA/Drivers/USB/LowLevel/OTG.h
index 26b2cd5c5c..ef3ab38d10 100644
--- a/LUFA/Drivers/USB/LowLevel/OTG.h
+++ b/LUFA/Drivers/USB/LowLevel/OTG.h
@@ -28,6 +28,16 @@
   this software.
 */
  
+/** \file
+ *  \brief USB OTG mode definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
+ *  may be linked directly together and exchange host/device roles as needed.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */
+
 /** \ingroup Group_USB
  *  @defgroup Group_OTG USB On The Go (OTG) Management
  *
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index c22c5aeb0d..127cea3ab6 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -28,6 +28,16 @@
   this software.
 */
  
+/** \file
+ *  \brief USB host pipe management definitions.
+ *
+ *  This file contains structures, function prototypes and macros related to the management of the device's
+ *  data pipes when the library is initialized in USB host mode.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.
+ */ 
+
 /** \ingroup Group_USB
  *  @defgroup Group_PipeManagement Pipe Management
  *
diff --git a/LUFA/Drivers/USB/USB.h b/LUFA/Drivers/USB/USB.h
index 3bc356d8e7..034fdf827b 100644
--- a/LUFA/Drivers/USB/USB.h
+++ b/LUFA/Drivers/USB/USB.h
@@ -29,10 +29,10 @@
 */
 
 /** \file
+ *  \brief Master include file for the library USB functionality.
  *
- *  Master include file for the library USB functionality. This file should be included in all user projects making
- *  use of the USB portions of the library, instead of including any headers in the USB/LowLevel or USB/HighLevel
- *  directories.
+ *  This file should be included in all user projects making use of the USB portions of the library, instead of
+ *  including any headers in the USB/LowLevel/ or USB/HighLevel/ subdirectories.
  */
 
 /** @defgroup Group_USB USB - LUFA/Drivers/USB/USB.h
diff --git a/LUFA/ManPages/AlternativeStacks.txt b/LUFA/ManPages/AlternativeStacks.txt
index ed640f4ab7..c7fcfbfc67 100644
--- a/LUFA/ManPages/AlternativeStacks.txt
+++ b/LUFA/ManPages/AlternativeStacks.txt
@@ -7,17 +7,17 @@
 /**
  *  \page Page_AlternativeStacks Alternative USB AVR Stacks
  *
- *  LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (\see Page_WhyUseLUFA).
+ *  LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (see \ref Page_WhyUseLUFA).
  *  In the interests of completeness and user choice, other known USB AVR stacks are listed here.
  *
- *  - Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
+ *  - <b>Name:</b> Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
  *    <b>Cost:</b> Free \n
  *    <b>License:</b> Atmel Limited License (see Atmel download for details) \n
  *    <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
  *    <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
  *                        USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
  *
- *  - Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
+ *  - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
  *    <b>Cost:</b> Free \n
  *    <b>License:</b> GPL \n
  *    <b>Website:</b> http://www.ssalewski.de/AT90USB_firmware.html.en \n
@@ -25,13 +25,13 @@
  *                        German Physicist. It compiles for AVR-GCC and can potentially be modified to work on other USB
  *                        AVR models.
  *
- *  - PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
+ *  - <b>Name:</b> PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
  *    <b>Cost:</b> Free \n
  *    <b>License:</b> BSD \n
  *    <b>Website:</b> http://www.pjrc.com/teensy/usb_debug_only.html \n
  *    <b>Description:</b> Not so much a complete stack as a collection of USB enabled demos, this library is specifically
  *                        designed for the PJRC Teensy line of USB AVRs, and thus may need to be modified for other USB AVR
- *                        chips. These code samples shows the inner workings of the USB controller, without all the abstraction
- *                        present in most other USB AVR stacks. 
+ *                        chips. These minimal code samples shows the inner workings of the USB controller, without all the 
+ *                        abstraction present in most other USB AVR stacks. 
  */
  
\ No newline at end of file
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 1a0fd0d799..07a7134d55 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -14,7 +14,7 @@
   *  - Added new Relay Controller Board project (thanks to OBinou)
   *
   *  <b>Changed:</b>
-  *  - AVRISP programmer project now has a more robust timeout system, allowing for an increse of the software USART speed
+  *  - AVRISP programmer project now has a more robust timeout system, allowing for an increase of the software USART speed
   *    for PDI and TPI programming
   *  - Added a timeout value to the TWI_StartTransmission() function, within which the addressed device must respond
   *  - Webserver project now uses the board LEDs to indicate the current IP configuration state
@@ -32,7 +32,7 @@
   *  - Fixed ADC routines not correctly returning the last result when multiple channels were read
   *  - Fixed ADC routines failing to read the extended channels (Channels 8 to 13, Internal Temperature Sensor) on the
   *    U4 series USB AVR parts
-  *  - Fixed LowLevel MassStorage demo broken on the U2 AVRs due to double-banked endpoints
+  *  - Fixed LowLevel MassStorage demo broken on the U2 series USB AVRs due to unsupported double-banked endpoint modes used
   *  - Fixed compilation error in the AudioInput demos when MICROPHONE_BIASED_TO_HALF_RAIL is defined (thanks to C. Scott Ananian)
   *  - Fixed incorrect definition of HID_ALIGN_DATA() causing incorrect HID report item data alignment
   *  - Fixed Still Image Host class driver not resetting the transaction ID when a new session is opened, fixed driver not sending
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index dd5a442873..b0e31e8f70 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -33,6 +33,7 @@
   *      -# Finish MIDI class Bootloader
   *      -# Finish SideShow demo
   *      -# Finish StandaloneProgrammer project
+  *      -# Finish MIDIToneGenerator project
   *  - Ports
   *      -# AVR32 UC3B series microcontrollers
   *      -# Atmel ARM7 series microcontrollers
diff --git a/LUFA/ManPages/LibraryApps.txt b/LUFA/ManPages/LibraryApps.txt
index 63e89b9470..5f522634d1 100644
--- a/LUFA/ManPages/LibraryApps.txt
+++ b/LUFA/ManPages/LibraryApps.txt
@@ -107,6 +107,9 @@
  *    - <b>USBtoSerial</b> - USB to USART Serial Converter project
  *    - <b>Webserver</b> - RNDIS Host Webserver with DHCP client, powered by uIP TCP/IP stack project and FatFS library
  *    - <b>XPLAINBridge</b> - XPLAIN alternative PDI Programmer/USB to Serial Bridge firmware project
+ *    - <b>Incomplete</b>
+ *      - <b>MIDIToneGenerator</b> - Incomplete MIDI Tone Generator application, to convert MIDI note messages into audio tones
+ *      - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
  *
  *  </small>
  */
\ No newline at end of file
diff --git a/LUFA/ManPages/Licence.txt b/LUFA/ManPages/Licence.txt
index 7f4e1dc277..2160d7960c 100644
--- a/LUFA/ManPages/Licence.txt
+++ b/LUFA/ManPages/Licence.txt
@@ -12,9 +12,9 @@
  *  Commercial entities can opt out of the public disclosure clause in this license
  *  for a one-time US$1500 payment. This provides a non-exclusive modified MIT licensed which
  *  allows for the free use of the LUFA library, bootloaders and (where the sole copyright
- *  is attributed to Dean Camera) demos without public disclosure within an organisation. Please
- *  contact the author for more information (<b>Note: Please do NOT pay this in advance through the
- *  donation link shown on \ref Page_Donating - contact author for payment details.</b>).
+ *  is attributed to Dean Camera) demos without public disclosure within an organisation, in
+ *  addition to three free hours of consultation with the library author, and priority support.
+ *  Please contact the author for more information via the address shown on on \ref Page_Resources.
  *
  *  \verbatim
  *  Permission to use, copy, modify, and distribute this software
diff --git a/LUFA/ManPages/MainPage.txt b/LUFA/ManPages/MainPage.txt
index 30e32e1050..d7baa0d651 100644
--- a/LUFA/ManPages/MainPage.txt
+++ b/LUFA/ManPages/MainPage.txt
@@ -7,15 +7,15 @@
 /**
  *  \mainpage
  *
- *  \n
  *  \image html LUFA.png
+ *  <div align="center"><small><i>Logo design by <b>Ryo Yamauchi</b></i></small></div>
  *  \n
  *
  *  <b>LUFA is donationware. For author and donation information, see \ref Page_Donating.</b>
  *
- *  LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license. It supports
- *  a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use, feature
- *  rich framework for the development of USB peripherals and hosts.
+ *  LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license (see \ref Page_Licence).
+ *  It supports a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use,
+ *  feature rich framework for the development of USB peripherals and hosts.
  *
  *  LUFA focuses on the microcontroller side of USB development only; it includes no host USB driver development facilities. While
  *  custom USB devices can be made with LUFA, the included demos all use the inbuilt OS drivers for each USB class for simplicity.
@@ -34,12 +34,10 @@
  *  and open source LUFA powered projects.
  *
  *  <b>Subsections:</b>
- *  - \subpage Page_WhyUseLUFA Why Use LUFA?
+ *  - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
  *  - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
  *  - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
- *  - \subpage Page_Licence Project licence
+ *  - \subpage Page_Licence Project source licence and commercial use information
  *  - \subpage Page_Donating Donating to support this project
  *  - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
- *
- *  <small><i>Logo design by <b>Ryo Yamauchi</b></i></small>
  */
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index f71736fd53..ed04971155 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -29,6 +29,7 @@
 */
 
 /** \file
+ *  \brief Simple round-robbin pseudo-task scheduler.
  *
  *  Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need
  *  to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.
diff --git a/LUFA/Version.h b/LUFA/Version.h
index 2eb3b3348a..f36e25d851 100644
--- a/LUFA/Version.h
+++ b/LUFA/Version.h
@@ -9,13 +9,14 @@
 /*
   Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
-  Permission to use, copy, modify, distribute, and sell this software
-  and its documentation for any purpose is hereby granted without fee,
-  provided that the above copyright notice appear in all copies and that
-  both that the copyright notice and this permission notice and warranty
-  disclaimer appear in supporting documentation, and that the name of the
-  author not be used in advertising or publicity pertaining to distribution
-  of the software without specific, written prior permission.
+  Permission to use, copy, modify, distribute, and sell this 
+  software and its documentation for any purpose is hereby granted
+  without fee, provided that the above copyright notice appear in 
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting 
+  documentation, and that the name of the author not be used in 
+  advertising or publicity pertaining to distribution of the 
+  software without specific, written prior permission.
 
   The author disclaim all warranties with regard to this
   software, including all implied warranties of merchantability
@@ -28,6 +29,8 @@
 */
 
 /** \file
+ *
+ *  \brief LUFA library version constants.
  *
  *  Version constants for informational purposes and version-specific macro creation. This header file contains the
  *  current LUFA version number in several forms, for use in the user-application (for example, for printing out 
diff --git a/README.txt b/README.txt
index be39234630..3eed421b13 100644
--- a/README.txt
+++ b/README.txt
@@ -15,10 +15,12 @@
 This package contains the complete LUFA library, demos, user-submitted projects
 and bootloaders for use with compatible microcontroller models. To get started,
 you will need to install the "Doxygen" documentation generation tool from
-www.doxygen.org, and run "make doxygen" from the command line. From there, the
-generated HTML documentation for the library itself will be avaliable in the
-LUFA/Documentation/html/ directory. View this documentation in your chosen web
-browser for further Getting Started information.
+www.doxygen.org, and run "make doxygen" from the command line whilst inside the
+extracted LUFA download package directory. From there, the generated Doxygen 
+HTML documentation for the library and included projects will be available in the
+generated Documentation/ subdirectories of the library core and projects. View
+the generated documentation for the library core in your chosen web browser for
+further Getting Started information.
 
 The documentation for the library itself (but not the documentation for the
 individual demos, projects or bootloaders) is also available as a seperate
diff --git a/makefile b/makefile
index 421c077486..d6d191e525 100644
--- a/makefile
+++ b/makefile
@@ -10,7 +10,7 @@
 
 # Call with "make all" to rebuild everything, "make clean" to clean everything,
 # "make clean_list" to remove all intermediatary files but preserve any binaries,
-# "make doxygen" to document everything with DoxyGen (if installed) and
+# "make doxygen" to document everything with Doxygen (if installed) and
 # "make clean_doxygen" to remove generated Doxygen documentation from everything.
 
 all: