diff --git a/bcinfo/Wrap/file_wrapper_output.cpp b/bcinfo/Wrap/file_wrapper_output.cpp
index 4cdc54e..53f433b 100644
--- a/bcinfo/Wrap/file_wrapper_output.cpp
+++ b/bcinfo/Wrap/file_wrapper_output.cpp
@@ -36,6 +36,10 @@
 }
 
 bool FileWrapperOutput::Write(const uint8_t* buffer, size_t buffer_size) {
+  if (!buffer) {
+    return false;
+  }
+
   if (buffer_size > 0) {
     return buffer_size == fwrite(buffer, 1, buffer_size, _file);
   } else {
diff --git a/bcinfo/Wrap/in_memory_wrapper_input.cpp b/bcinfo/Wrap/in_memory_wrapper_input.cpp
index 3f91f01..2d45d9c 100644
--- a/bcinfo/Wrap/in_memory_wrapper_input.cpp
+++ b/bcinfo/Wrap/in_memory_wrapper_input.cpp
@@ -28,6 +28,11 @@
 
 size_t InMemoryWrapperInput::Read(uint8_t* buffer, size_t wanted) {
   size_t found = 0;
+
+  if (!buffer) {
+    return 0;
+  }
+
   while (found < wanted) {
     if (_pos >= _size) {
       return found;
diff --git a/include/bcinfo/Wrap/BCHeaderField.h b/include/bcinfo/Wrap/BCHeaderField.h
index 8652d78..fd8d585 100644
--- a/include/bcinfo/Wrap/BCHeaderField.h
+++ b/include/bcinfo/Wrap/BCHeaderField.h
@@ -17,7 +17,6 @@
 #ifndef LLVM_WRAP_BCHEADER_FIELD_H__
 #define LLVM_WRAP_BCHEADER_FIELD_H__
 
-#include <limits>
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
@@ -51,8 +50,9 @@
     size_t pad_len = (4 - (fields_len & 3)) & 3;
     // Ensure buffer is large enough and that length can be represented
     // in 16 bits
+    const size_t max_uint16_t = 65535;
     if (buf_len < fields_len + pad_len ||
-        len_ > std::numeric_limits<FixedSubfield>::max()) return false;
+        len_ > max_uint16_t) return false;
 
     WriteFixedSubfield(static_cast<FixedSubfield>(ID_), buf);
     WriteFixedSubfield(static_cast<FixedSubfield>(len_),
diff --git a/lib/ExecutionEngine/MCCacheReader.cpp b/lib/ExecutionEngine/MCCacheReader.cpp
index 6005536..bf4fe47 100644
--- a/lib/ExecutionEngine/MCCacheReader.cpp
+++ b/lib/ExecutionEngine/MCCacheReader.cpp
@@ -466,6 +466,13 @@
                      mpResult->mCachedELFExecutable.size(),
                      &resolveSymbolAdapter, this);
 
+  // Point ELF section headers to location of executable code, otherwise
+  // execution through GDB stops unexpectedly as GDB translates breakpoints
+  // in JITted code incorrectly (and complains about being unable to insert
+  // breakpoint at an invalid address)
+  rsloaderUpdateSectionHeaders(mpResult->mRSExecutable,
+    (unsigned char*) mpResult->mCachedELFExecutable.begin());
+
   return true;
 }
 
