diff --git a/src/converter/converter_base.gyp b/src/converter/converter_base.gyp
index 25fdecd..c9a35b8 100644
--- a/src/converter/converter_base.gyp
+++ b/src/converter/converter_base.gyp
@@ -39,10 +39,10 @@
   },
   'targets': [
     {
-      'target_name': 'segmenter_base',
+      'target_name': 'segmenter',
       'type': 'static_library',
       'sources': [
-        'segmenter_base.cc',
+        'segmenter.cc',
       ],
       'dependencies': [
         '../base/base.gyp:base',
diff --git a/src/converter/converter_test.cc b/src/converter/converter_test.cc
index be69abc..66744ce 100644
--- a/src/converter/converter_test.cc
+++ b/src/converter/converter_test.cc
@@ -47,7 +47,7 @@
 #include "converter/immutable_converter.h"
 #include "converter/immutable_converter_interface.h"
 #include "converter/node.h"
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
 #include "converter/segmenter_interface.h"
 #include "converter/segments.h"
 #include "data_manager/data_manager_interface.h"
@@ -208,7 +208,7 @@
     ret->suffix_dictionary.reset(
         CreateSuffixDictionaryFromDataManager(data_manager));
     ret->connector.reset(Connector::CreateFromDataManager(data_manager));
-    ret->segmenter.reset(SegmenterBase::CreateFromDataManager(data_manager));
+    ret->segmenter.reset(Segmenter::CreateFromDataManager(data_manager));
     ret->immutable_converter.reset(
         new ImmutableConverterImpl(ret->dictionary.get(),
                                    ret->suffix_dictionary.get(),
@@ -1245,7 +1245,7 @@
   scoped_ptr<const Connector> connector(
       Connector::CreateFromDataManager(data_manager));
   scoped_ptr<const SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(data_manager));
+      Segmenter::CreateFromDataManager(data_manager));
   scoped_ptr<const SuggestionFilter> suggestion_filter(
       CreateSuggestionFilter(data_manager));
   scoped_ptr<ImmutableConverterInterface> immutable_converter(
diff --git a/src/converter/converter_test.gyp b/src/converter/converter_test.gyp
index da00aca..dcd1cb9 100644
--- a/src/converter/converter_test.gyp
+++ b/src/converter/converter_test.gyp
@@ -67,7 +67,7 @@
         'converter.gyp:converter',
         'converter_base.gyp:connector',
         'converter_base.gyp:converter_mock',
-        'converter_base.gyp:segmenter_base',
+        'converter_base.gyp:segmenter',
         'converter_base.gyp:segments',
       ],
       'variables': {
diff --git a/src/converter/immutable_converter_test.cc b/src/converter/immutable_converter_test.cc
index 0dbab2b..43c67b8 100644
--- a/src/converter/immutable_converter_test.cc
+++ b/src/converter/immutable_converter_test.cc
@@ -44,7 +44,7 @@
 #include "converter/connector.h"
 #include "converter/conversion_request.h"
 #include "converter/lattice.h"
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
 #include "converter/segmenter_interface.h"
 #include "converter/segments.h"
 #include "data_manager/data_manager_interface.h"
@@ -130,7 +130,7 @@
     connector_.reset(Connector::CreateFromDataManager(*data_manager_));
     CHECK(connector_.get());
 
-    segmenter_.reset(SegmenterBase::CreateFromDataManager(*data_manager_));
+    segmenter_.reset(Segmenter::CreateFromDataManager(*data_manager_));
     CHECK(segmenter_.get());
 
     pos_group_.reset(new PosGroup(data_manager_->GetPosGroupData()));
diff --git a/src/converter/nbest_generator_test.cc b/src/converter/nbest_generator_test.cc
index 6861379..74ce35d 100644
--- a/src/converter/nbest_generator_test.cc
+++ b/src/converter/nbest_generator_test.cc
@@ -40,7 +40,7 @@
 #include "converter/connector.h"
 #include "converter/conversion_request.h"
 #include "converter/immutable_converter.h"
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
 #include "converter/segmenter_interface.h"
 #include "converter/segments.h"
 #include "data_manager/data_manager_interface.h"
@@ -103,7 +103,7 @@
     connector_.reset(Connector::CreateFromDataManager(*data_manager_));
     CHECK(connector_.get());
 
-    segmenter_.reset(SegmenterBase::CreateFromDataManager(*data_manager_));
+    segmenter_.reset(Segmenter::CreateFromDataManager(*data_manager_));
     CHECK(segmenter_.get());
 
     pos_group_.reset(new PosGroup(data_manager_->GetPosGroupData()));
diff --git a/src/converter/segmenter_base.cc b/src/converter/segmenter.cc
similarity index 85%
rename from src/converter/segmenter_base.cc
rename to src/converter/segmenter.cc
index dcd1f19..3afe62f 100644
--- a/src/converter/segmenter_base.cc
+++ b/src/converter/segmenter.cc
@@ -27,7 +27,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
 
 #include "base/bitarray.h"
 #include "base/logging.h"
@@ -38,7 +38,7 @@
 
 namespace mozc {
 
-SegmenterBase *SegmenterBase::CreateFromDataManager(
+Segmenter *Segmenter::CreateFromDataManager(
     const DataManagerInterface &data_manager) {
   size_t l_num_elements = 0;
   size_t r_num_elements = 0;
@@ -51,13 +51,13 @@
                                 &l_table, &r_table,
                                 &bitarray_num_bytes, &bitarray_data,
                                 &boundary_data);
-  return new SegmenterBase(l_num_elements, r_num_elements,
-                           l_table, r_table,
-                           bitarray_num_bytes, bitarray_data,
-                           boundary_data);
+  return new Segmenter(l_num_elements, r_num_elements,
+                       l_table, r_table,
+                       bitarray_num_bytes, bitarray_data,
+                       boundary_data);
 }
 
-SegmenterBase::SegmenterBase(
+Segmenter::Segmenter(
     size_t l_num_elements, size_t r_num_elements, const uint16 *l_table,
     const uint16 *r_table, size_t bitarray_num_bytes,
     const char *bitarray_data, const BoundaryData *boundary_data)
@@ -72,10 +72,10 @@
   CHECK_LE(l_num_elements_ * r_num_elements_, bitarray_num_bytes_ * 8);
 }
 
-SegmenterBase::~SegmenterBase() {}
+Segmenter::~Segmenter() {}
 
-bool SegmenterBase::IsBoundary(const Node *lnode, const Node *rnode,
-                               bool is_single_segment) const {
+bool Segmenter::IsBoundary(const Node *lnode, const Node *rnode,
+                           bool is_single_segment) const {
   DCHECK(lnode);
   DCHECK(rnode);
   if (lnode->node_type == Node::BOS_NODE ||
@@ -104,17 +104,18 @@
   return IsBoundary(lnode->rid, rnode->lid);
 }
 
-bool SegmenterBase::IsBoundary(uint16 rid, uint16 lid) const {
+bool Segmenter::IsBoundary(uint16 rid, uint16 lid) const {
   const uint32 bitarray_index = l_table_[rid] + l_num_elements_ * r_table_[lid];
   return BitArray::GetValue(reinterpret_cast<const char*>(bitarray_data_),
                             bitarray_index);
 }
 
-int32 SegmenterBase::GetPrefixPenalty(uint16 lid) const {
+int32 Segmenter::GetPrefixPenalty(uint16 lid) const {
   return boundary_data_[lid].prefix_penalty;
 }
 
-int32 SegmenterBase::GetSuffixPenalty(uint16 rid) const {
+int32 Segmenter::GetSuffixPenalty(uint16 rid) const {
   return boundary_data_[rid].suffix_penalty;
 }
+
 }  // namespace mozc
diff --git a/src/converter/segmenter_base.h b/src/converter/segmenter.h
similarity index 79%
rename from src/converter/segmenter_base.h
rename to src/converter/segmenter.h
index 541d4e8..74e4b4c 100644
--- a/src/converter/segmenter_base.h
+++ b/src/converter/segmenter.h
@@ -27,10 +27,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Segmenter implementation base class
-
-#ifndef MOZC_CONVERTER_SEGMENTER_BASE_H_
-#define MOZC_CONVERTER_SEGMENTER_BASE_H_
+#ifndef MOZC_CONVERTER_SEGMENTER_H_
+#define MOZC_CONVERTER_SEGMENTER_H_
 
 #include "base/port.h"
 #include "converter/segmenter_interface.h"
@@ -41,17 +39,17 @@
 struct Node;
 struct BoundaryData;
 
-class SegmenterBase : public SegmenterInterface {
+class Segmenter : public SegmenterInterface {
  public:
-  static SegmenterBase *CreateFromDataManager(
+  static Segmenter *CreateFromDataManager(
       const DataManagerInterface &data_manager);
 
-  // This class does not have the ownership of pointer parameters.
-  SegmenterBase(size_t l_num_elements, size_t r_num_elements,
-                const uint16 *l_table, const uint16 *r_table,
-                size_t bitarray_num_bytes, const char *bitarray_data,
-                const BoundaryData *boundary_data);
-  virtual ~SegmenterBase();
+  // This class does not take the ownership of pointer parameters.
+  Segmenter(size_t l_num_elements, size_t r_num_elements,
+            const uint16 *l_table, const uint16 *r_table,
+            size_t bitarray_num_bytes, const char *bitarray_data,
+            const BoundaryData *boundary_data);
+  virtual ~Segmenter();
 
   virtual bool IsBoundary(const Node *lnode, const Node *rnode,
                           bool is_single_segment) const;
@@ -73,4 +71,5 @@
 };
 
 }  // namespace mozc
-#endif  // MOZC_CONVERTER_SEGMENTER_BASE_H_
+
+#endif  // MOZC_CONVERTER_SEGMENTER_H_
diff --git a/src/data_manager/data_manager_test.gyp b/src/data_manager/data_manager_test.gyp
index e4d12df..31a0793 100644
--- a/src/data_manager/data_manager_test.gyp
+++ b/src/data_manager/data_manager_test.gyp
@@ -42,7 +42,7 @@
       'dependencies': [
         '../base/base.gyp:base',
         '../converter/converter_base.gyp:connector',
-        '../converter/converter_base.gyp:segmenter_base',
+        '../converter/converter_base.gyp:segmenter',
         '../dictionary/dictionary_base.gyp:pos_matcher',
         '../prediction/prediction_base.gyp:suggestion_filter',
         '../testing/testing.gyp:testing',
diff --git a/src/data_manager/data_manager_test_base.cc b/src/data_manager/data_manager_test_base.cc
index 75ed4c7..518223c 100644
--- a/src/data_manager/data_manager_test_base.cc
+++ b/src/data_manager/data_manager_test_base.cc
@@ -41,7 +41,6 @@
 #include "converter/connector.h"
 #include "converter/node.h"
 #include "converter/segmenter_base.h"
-#include "converter/segmenter_interface.h"
 #include "data_manager/connection_file_reader.h"
 #include "data_manager/data_manager_interface.h"
 #include "dictionary/pos_matcher.h"
@@ -84,8 +83,8 @@
 void DataManagerTestBase::SegmenterTest_SameAsInternal() {
   // This test verifies that a segmenter created by MockDataManager provides
   // the expected boundary rule.
-  scoped_ptr<SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(*data_manager_));
+  scoped_ptr<Segmenter> segmenter(
+      Segmenter::CreateFromDataManager(*data_manager_));
   for (size_t rid = 0; rid < lsize_; ++rid) {
     for (size_t lid = 0; lid < rsize_; ++lid) {
       EXPECT_EQ(is_boundary_(rid, lid),
@@ -95,8 +94,8 @@
 }
 
 void DataManagerTestBase::SegmenterTest_LNodeTest() {
-  scoped_ptr<SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(*data_manager_));
+  scoped_ptr<Segmenter> segmenter(
+      Segmenter::CreateFromDataManager(*data_manager_));
 
   // lnode is BOS
   Node lnode, rnode;
@@ -113,8 +112,8 @@
 }
 
 void DataManagerTestBase::SegmenterTest_RNodeTest() {
-  scoped_ptr<SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(*data_manager_));
+  scoped_ptr<Segmenter> segmenter(
+      Segmenter::CreateFromDataManager(*data_manager_));
 
   // rnode is EOS
   Node lnode, rnode;
@@ -131,8 +130,8 @@
 }
 
 void DataManagerTestBase::SegmenterTest_NodeTest() {
-  scoped_ptr<SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(*data_manager_));
+  scoped_ptr<Segmenter> segmenter(
+      Segmenter::CreateFromDataManager(*data_manager_));
 
   Node lnode, rnode;
   lnode.node_type = Node::NOR_NODE;
@@ -149,8 +148,8 @@
 }
 
 void DataManagerTestBase::SegmenterTest_ParticleTest() {
-  scoped_ptr<SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(*data_manager_));
+  scoped_ptr<Segmenter> segmenter(
+      Segmenter::CreateFromDataManager(*data_manager_));
   const POSMatcher *pos_matcher = data_manager_->GetPOSMatcher();
 
   Node lnode, rnode;
diff --git a/src/engine/engine.cc b/src/engine/engine.cc
index 6782b33..e615757 100644
--- a/src/engine/engine.cc
+++ b/src/engine/engine.cc
@@ -36,7 +36,7 @@
 #include "converter/converter_interface.h"
 #include "converter/immutable_converter.h"
 #include "converter/immutable_converter_interface.h"
-#include "converter/segmenter_base.h"
+#include "converter/segmenter.h"
 #include "data_manager/data_manager_interface.h"
 #include "dictionary/dictionary_impl.h"
 #include "dictionary/dictionary_interface.h"
@@ -176,7 +176,7 @@
   connector_.reset(Connector::CreateFromDataManager(*data_manager));
   CHECK(connector_.get());
 
-  segmenter_.reset(SegmenterBase::CreateFromDataManager(*data_manager));
+  segmenter_.reset(Segmenter::CreateFromDataManager(*data_manager));
   CHECK(segmenter_.get());
 
   pos_group_.reset(new PosGroup(data_manager->GetPosGroupData()));
diff --git a/src/engine/engine.gyp b/src/engine/engine.gyp
index 4bbb5e7..24ddadd 100644
--- a/src/engine/engine.gyp
+++ b/src/engine/engine.gyp
@@ -44,7 +44,7 @@
         '../base/base.gyp:base',
         '../converter/converter.gyp:converter',
         '../converter/converter_base.gyp:connector',
-        '../converter/converter_base.gyp:segmenter_base',
+        '../converter/converter_base.gyp:segmenter',
         '../dictionary/dictionary.gyp:dictionary_impl',
         '../dictionary/dictionary.gyp:suffix_dictionary',
         '../dictionary/dictionary_base.gyp:dictionary_protocol',
diff --git a/src/mozc_version_template.txt b/src/mozc_version_template.txt
index 25baac6..843d169 100644
--- a/src/mozc_version_template.txt
+++ b/src/mozc_version_template.txt
@@ -1,6 +1,6 @@
 MAJOR=2
 MINOR=17
-BUILD=2084
+BUILD=2085
 REVISION=102
 # NACL_DICTIONARY_VERSION is the target version of the system dictionary to be
 # downloaded by NaCl Mozc.
diff --git a/src/prediction/dictionary_predictor_test.cc b/src/prediction/dictionary_predictor_test.cc
index 160c6ae..fd7762e 100644
--- a/src/prediction/dictionary_predictor_test.cc
+++ b/src/prediction/dictionary_predictor_test.cc
@@ -53,8 +53,7 @@
 #include "converter/immutable_converter.h"
 #include "converter/immutable_converter_interface.h"
 #include "converter/node_allocator.h"
-#include "converter/segmenter_base.h"
-#include "converter/segmenter_interface.h"
+#include "converter/segmenter.h"
 #include "converter/segments.h"
 #include "data_manager/data_manager_interface.h"
 #include "data_manager/testing/mock_data_manager.h"
@@ -224,7 +223,7 @@
     connector_.reset(Connector::CreateFromDataManager(data_manager));
     CHECK(connector_.get());
 
-    segmenter_.reset(SegmenterBase::CreateFromDataManager(data_manager));
+    segmenter_.reset(Segmenter::CreateFromDataManager(data_manager));
     CHECK(segmenter_.get());
 
     pos_group_.reset(new PosGroup(data_manager.GetPosGroupData()));
@@ -1563,7 +1562,7 @@
   scoped_ptr<const Connector> connector(
       Connector::CreateFromDataManager(data_manager));
   scoped_ptr<const SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(data_manager));
+      Segmenter::CreateFromDataManager(data_manager));
   scoped_ptr<const SuggestionFilter> suggestion_filter(
       CreateSuggestionFilter(data_manager));
   scoped_ptr<TestableDictionaryPredictor> predictor(
@@ -3135,7 +3134,7 @@
   scoped_ptr<const Connector> connector(
       Connector::CreateFromDataManager(data_manager));
   scoped_ptr<const SegmenterInterface> segmenter(
-      SegmenterBase::CreateFromDataManager(data_manager));
+      Segmenter::CreateFromDataManager(data_manager));
   scoped_ptr<const SuggestionFilter> suggestion_filter(
       CreateSuggestionFilter(data_manager));
   scoped_ptr<TestableDictionaryPredictor> predictor(
diff --git a/src/prediction/prediction_test.gyp b/src/prediction/prediction_test.gyp
index 4b6a160..580964a 100644
--- a/src/prediction/prediction_test.gyp
+++ b/src/prediction/prediction_test.gyp
@@ -47,7 +47,7 @@
         '../converter/converter_base.gyp:connector',
         '../converter/converter_base.gyp:converter_mock',
         '../converter/converter_base.gyp:immutable_converter',
-        '../converter/converter_base.gyp:segmenter_base',
+        '../converter/converter_base.gyp:segmenter',
         '../converter/converter_base.gyp:segments',
         '../data_manager/data_manager.gyp:user_pos_manager',
         '../data_manager/testing/mock_data_manager.gyp:mock_data_manager',
