diff --git a/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
index 36e7de3f001898642b206d349f6b93a5a9e78307..2caacaa00b54120d84d732e3596c34b73bb5378a 100644
--- a/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
@@ -167,16 +167,23 @@
 			 */
 			static inline void SPI_Init(const uint8_t SPIOptions)
 			{
-				DDRB  |=  ((1 << 1) | (1 << 2));
-				DDRB  &= ~((1 << 0) | (1 << 3));
-				PORTB |=  ((1 << 0) | (1 << 3));
+				/* Prevent high rise times on PB.0 (/SS) from forcing a change to SPI slave mode */
+				DDRB  |= (1 << 0);
+				PORTB |= (1 << 0);
 
-				SPCR   = ((1 << SPE) | SPIOptions);
+				DDRB  |=  ((1 << 1) | (1 << 2));
+				DDRB  &= ~(1 << 3);
+				PORTB |=  (1 << 3);
 
 				if (SPIOptions & SPI_USE_DOUBLESPEED)
 				  SPSR |= (1 << SPI2X);
 				else
 				  SPSR &= ~(1 << SPI2X);
+
+				/* Switch /SS to input mode after configuration to allow for forced mode changes */
+				DDRB &= ~(1 << 0);
+
+				SPCR   = ((1 << SPE) | SPIOptions);
 			}
 
 			/** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */
@@ -188,6 +195,15 @@
 				SPCR   = 0;
 				SPSR   = 0;
 			}
+			
+			/** Retrieves the currently selected SPI mode, once the SPI interface has been configured.
+			 *
+			 *  \return \ref SPI_MODE_MASTER if the interface is currently in SPI Master mode, \ref SPI_MODE_SLAVE otherwise
+			 */
+			static inline uint8_t SPI_GetCurrentMode(void)
+			{
+				return (SPCR & SPI_MODE_MASTER);
+			}
 
 			/** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
 			 *
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 2770fd2066028e34ae730a446c15098d8c04fa3c..abf86a9eaef4a3ae01d11417a35eaa7973e71530 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -18,6 +18,7 @@
   *   - Added new EVENT_Audio_Device_StreamStartStop() event to the Audio Device Class driver to detect stream start/stop events
   *   - Added board driver support for the Busware TUL board
   *   - Added new Host mode Audio Class driver
+  *   - Added new \ref SPI_GetCurrentMode() function to the SPI peripheral driver
   *  - Library Applications:
   *   - Added RNDIS device mode to the Webserver project
   *   - Added new incomplete AndroidAccessoryHost Host LowLevel demo
@@ -40,7 +41,9 @@
   *
   *  <b>Fixed:</b>
   *  - Core:
-  *   - Large number of documentation and code comment corrections (thanks to Andrewy from Microsin.ru)
+  *   - Large number of documentation and code comment corrections (thanks to Andrey from Microsin.ru)
+  *   - Fixed possibility of the AVR's SPI interface being pulled out of master mode if the /SS pin is a input and pulled low (thanks
+  *     to Andrey from Microsin.ru)
   *  - Library Applications:
   *   - Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2
   *   - Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed