diff --git a/.travis.yml b/.travis.yml
index b22d9bb..bc4a117 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -57,5 +57,5 @@ before_install:
 script:
   - cd ${TRAVIS_BUILD_DIR}
   # Remove ssid_config requirement for examples
-  - sed -i "s%#warning%//#warning%" include/ssid_config.h
-  - make -C examples/ build-examples CROSS="ccache xtensa-lx106-elf-" V=1
+  - sed -i "s%#error%//#error%" include/ssid_config.h
+  - make WARNINGS_AS_ERRORS=1 -C examples/ build-examples CROSS="ccache xtensa-lx106-elf-" V=1
diff --git a/common.mk b/common.mk
index 4e8ee3a..8da70cd 100644
--- a/common.mk
+++ b/common.mk
@@ -106,8 +106,14 @@ ENTRY_SYMBOL ?= call_user_start
 # but compiled code size will come down a small amount.)
 SPLIT_SECTIONS ?= 1
 
+# Set this to 1 to have all compiler warnings treated as errors (and stop the
+# build).  This is recommended whenever you are working on code which will be
+# submitted back to the main project, as all submitted code will be expected to
+# compile without warnings to be accepted.
+WARNINGS_AS_ERRORS ?= 0
+
 # Common flags for both C & C++_
-C_CXX_FLAGS     ?= -Wall -Werror -Wl,-EL -nostdlib $(EXTRA_C_CXX_FLAGS)
+C_CXX_FLAGS ?= -Wall -Wl,-EL -nostdlib $(EXTRA_C_CXX_FLAGS)
 # Flags for C only
 CFLAGS		?= $(C_CXX_FLAGS) -std=gnu99 $(EXTRA_CFLAGS)
 # Flags for C++ only
@@ -118,6 +124,10 @@ CPPFLAGS	+= -mlongcalls -mtext-section-literals
 
 LDFLAGS		= -nostdlib -Wl,--no-check-sections -L$(BUILD_DIR)sdklib -L$(ROOT)lib -u $(ENTRY_SYMBOL) -Wl,-static -Wl,-Map=$(BUILD_DIR)$(PROGRAM).map $(EXTRA_LDFLAGS)
 
+ifeq ($(WARNINGS_AS_ERRORS),1)
+    C_CXX_FLAGS += -Werror
+endif
+
 ifeq ($(SPLIT_SECTIONS),1)
   C_CXX_FLAGS += -ffunction-sections -fdata-sections
   LDFLAGS += -Wl,-gc-sections
diff --git a/include/ssid_config.h b/include/ssid_config.h
index edad5a9..a13e09a 100644
--- a/include/ssid_config.h
+++ b/include/ssid_config.h
@@ -20,7 +20,7 @@
 //   https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html
 //
 
-#warning "You need to enter your wifi credentials in this file and follow the instructions here to keep the password safe from Github commits."
+#error "You need to enter your wifi credentials in this file and follow the instructions here to keep the password safe from Github commits."
 
 #ifndef __SSID_CONFIG_H__
 #define __SSID_CONFIG_H__