diff --git a/Demos/Device/ClassDriver/RNDISEthernet/Lib/Webserver.c b/Demos/Device/ClassDriver/RNDISEthernet/Lib/Webserver.c
index 401dddf0d58d197f3a7ad59ff28aa2eeaea792b0..241da48962cbb3ae692681dac85b826ed2b07049 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/Lib/Webserver.c
+++ b/Demos/Device/ClassDriver/RNDISEthernet/Lib/Webserver.c
@@ -39,22 +39,22 @@
 /** HTTP server response header, for transmission before the page contents. This indicates to the host that a page exists at the
  *  given location, and gives extra connection information.
  */
-char PROGMEM HTTP200Header[] = "HTTP/1.1 200 OK\r\n"
-                               "Server: LUFA RNDIS\r\n"
-                               "Content-type: text/html\r\n"
-                               "Connection: close\r\n\r\n";
+const char HTTP200Header[] PROGMEM = "HTTP/1.1 200 OK\r\n"
+                                     "Server: LUFA RNDIS\r\n"
+                                     "Content-type: text/html\r\n"
+                                     "Connection: close\r\n\r\n";
 
 /** HTTP server response header, for transmission before a resource not found error. This indicates to the host that the given
  *  given URL is invalid, and gives extra error information.
  */
-char PROGMEM HTTP404Header[] = "HTTP/1.1 404 Not Found\r\n"
-                               "Server: LUFA RNDIS\r\n"
-                               "Connection: close\r\n\r\n";
+const char HTTP404Header[] PROGMEM = "HTTP/1.1 404 Not Found\r\n"
+                                     "Server: LUFA RNDIS\r\n"
+                                     "Connection: close\r\n\r\n";
 
 /** HTTP page to serve to the host when a HTTP request is made. This page is too long for a single response, thus it is automatically
  *  broken up into smaller blocks and sent as a series of packets each time the webserver application callback is run.
  */
-char PROGMEM HTTPPage[]   =
+const char HTTPPage[] PROGMEM =
 		"<html>"
 		"	<head>"
 		"		<title>"
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/RNDIS.c b/Demos/Device/LowLevel/RNDISEthernet/Lib/RNDIS.c
index a56b3473855f478005f15f8b549c7a2c98bbb67e..6acfff2814e8a0fac64ee890a716d40eb354e22e 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/Lib/RNDIS.c
+++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/RNDIS.c
@@ -38,12 +38,12 @@
 #include "RNDIS.h"
 
 /** Physical MAC address of the network adapter, which becomes the MAC address of the host for packets sent to the adapter. */
-static MAC_Address_t  PROGMEM AdapterMACAddress          = {ADAPTER_MAC_ADDRESS};
+static const MAC_Address_t PROGMEM AdapterMACAddress     = {ADAPTER_MAC_ADDRESS};
 
 /** Vendor description of the adapter. This is overridden by the INF file required to install the appropriate RNDIS drivers for
  *  the device, but may still be used by the OS in some circumstances.
  */
-static char           PROGMEM AdapterVendorDescription[] = "LUFA RNDIS Adapter";
+static const char PROGMEM AdapterVendorDescription[]     = "LUFA RNDIS Adapter";
 
 /** List of RNDIS OID commands supported by this adapter. */
 static const uint32_t PROGMEM AdapterSupportedOIDList[]  =
diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c b/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c
index 7bd083d85f37c1f3b94cb0307588b29c130658a6..d5c415202e5fe16b651273968d2eccb199bdfedb 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c
+++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/Webserver.c
@@ -39,22 +39,22 @@
 /** HTTP server response header, for transmission before the page contents. This indicates to the host that a page exists at the
  *  given location, and gives extra connection information.
  */
-char PROGMEM HTTP200Header[] = "HTTP/1.1 200 OK\r\n"
-                               "Server: LUFA RNDIS\r\n"
-                               "Content-type: text/html\r\n"
-                               "Connection: close\r\n\r\n";
+const char PROGMEM HTTP200Header[] = "HTTP/1.1 200 OK\r\n"
+                                     "Server: LUFA RNDIS\r\n"
+                                     "Content-type: text/html\r\n"
+                                     "Connection: close\r\n\r\n";
 
 /** HTTP server response header, for transmission before a resource not found error. This indicates to the host that the given
  *  given URL is invalid, and gives extra error information.
  */
-char PROGMEM HTTP404Header[] = "HTTP/1.1 404 Not Found\r\n"
-                               "Server: LUFA RNDIS\r\n"
-                               "Connection: close\r\n\r\n";
+const char PROGMEM HTTP404Header[] = "HTTP/1.1 404 Not Found\r\n"
+                                     "Server: LUFA RNDIS\r\n"
+                                     "Connection: close\r\n\r\n";
 
 /** HTTP page to serve to the host when a HTTP request is made. This page is too long for a single response, thus it is automatically
  *  broken up into smaller blocks and sent as a series of packets each time the webserver application callback is run.
  */
-char PROGMEM HTTPPage[]   =
+const char PROGMEM HTTPPage[]   =
 		"<html>"
 		"	<head>"
 		"		<title>"
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
index 9e7260aef2b07a76ace273df2a2bbba98f113b19..2158f4de2d7b96bcc3ec6ae4e987a1589922a13c 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
@@ -41,7 +41,7 @@
  *
  *  \hideinitializer
  */
-static uint8_t SPIMaskFromSCKDuration[] PROGMEM =
+static const uint8_t SPIMaskFromSCKDuration[] PROGMEM =
 {
 #if (F_CPU == 8000000)
 	SPI_SPEED_FCPU_DIV_2,    // AVRStudio =   8MHz SPI, Actual =   4MHz SPI
@@ -68,7 +68,7 @@ static uint8_t SPIMaskFromSCKDuration[] PROGMEM =
  *
  *  \hideinitializer
  */
-static uint16_t TimerCompareFromSCKDuration[] PROGMEM =
+static const uint16_t TimerCompareFromSCKDuration[] PROGMEM =
 {
 	TIMER_COMP(96386), TIMER_COMP(89888), TIMER_COMP(84211), TIMER_COMP(79208), TIMER_COMP(74767),
 	TIMER_COMP(70797), TIMER_COMP(67227), TIMER_COMP(64000), TIMER_COMP(61069), TIMER_COMP(58395),