diff --git a/re2/compile.cc b/re2/compile.cc
index 1b7b66c..326ab15 100644
--- a/re2/compile.cc
+++ b/re2/compile.cc
@@ -1089,8 +1089,6 @@
 
 void Compiler::Setup(Regexp::ParseFlags flags, int64_t max_mem,
                      RE2::Anchor anchor) {
-  prog_->set_flags(flags);
-
   if (flags & Regexp::Latin1)
     encoding_ = kEncodingLatin1;
   max_mem_ = max_mem;
@@ -1111,14 +1109,11 @@
     // on the program.)
     if (m >= 1<<24)
       m = 1<<24;
-
     // Inst imposes its own limit (currently bigger than 2^24 but be safe).
     if (m > Prog::Inst::kMaxInst)
       m = Prog::Inst::kMaxInst;
-
     max_ninst_ = static_cast<int>(m);
   }
-
   anchor_ = anchor;
 }
 
diff --git a/re2/prog.cc b/re2/prog.cc
index cc35917..9e91faf 100644
--- a/re2/prog.cc
+++ b/re2/prog.cc
@@ -110,7 +110,6 @@
     size_(0),
     bytemap_range_(0),
     first_byte_(-1),
-    flags_(0),
     list_count_(0),
     dfa_mem_(0),
     dfa_first_(NULL),
diff --git a/re2/prog.h b/re2/prog.h
index 40a6ce4..4ba72c0 100644
--- a/re2/prog.h
+++ b/re2/prog.h
@@ -209,8 +209,6 @@
   uint16_t* list_heads() { return list_heads_.data(); }
   void set_dfa_mem(int64_t dfa_mem) { dfa_mem_ = dfa_mem; }
   int64_t dfa_mem() { return dfa_mem_; }
-  int flags() { return flags_; }
-  void set_flags(int flags) { flags_ = flags; }
   bool anchor_start() { return anchor_start_; }
   void set_anchor_start(bool b) { anchor_start_ = b; }
   bool anchor_end() { return anchor_end_; }
@@ -403,7 +401,6 @@
   int size_;                // number of instructions
   int bytemap_range_;       // bytemap_[x] < bytemap_range_
   int first_byte_;          // required first byte for match, or -1 if none
-  int flags_;               // regexp parse flags
 
   int list_count_;                 // count of lists (see above)
   int inst_count_[kNumInst];       // count of instructions by opcode
