diff --git a/src/master/master.cpp b/src/master/master.cpp
index e9f2225..72a499a 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -678,7 +678,7 @@
     // N.B. Need to add the framwwork _after_ we add it's tasks
     // (above) so that we can properly determine the resources it's
     // currently using!
-    addFramework(framework, true);
+    addFramework(framework);
   }
 
   CHECK(frameworks.count(frameworkInfo.id()) > 0);
@@ -1650,7 +1650,7 @@
 }
 
 
-void Master::addFramework(Framework* framework, bool reregister)
+void Master::addFramework(Framework* framework)
 {
   CHECK(frameworks.count(framework->id) == 0);
 
@@ -1658,17 +1658,10 @@
 
   link(framework->pid);
 
-  if (reregister) {
-    FrameworkReregisteredMessage message;
-    message.mutable_framework_id()->MergeFrom(framework->id);
-    message.mutable_master_info()->MergeFrom(info);
-    send(framework->pid, message);
-  } else {
-    FrameworkRegisteredMessage message;
-    message.mutable_framework_id()->MergeFrom(framework->id);
-    message.mutable_master_info()->MergeFrom(info);
-    send(framework->pid, message);
-  }
+  FrameworkRegisteredMessage message;
+  message.mutable_framework_id()->MergeFrom(framework->id);
+  message.mutable_master_info()->MergeFrom(info);
+  send(framework->pid, message);
 
   allocator->frameworkAdded(
       framework->id, framework->info, framework->resources);
diff --git a/src/master/master.hpp b/src/master/master.hpp
index f0b1def..2d8a278 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -141,7 +141,7 @@
       const std::vector<Task>& tasks);
 
   // Add a framework.
-  void addFramework(Framework* framework, bool reregister = false);
+  void addFramework(Framework* framework);
 
   // Replace the scheduler for a framework with a new process ID, in
   // the event of a scheduler failover.
diff --git a/src/tests/allocator_zookeeper_tests.cpp b/src/tests/allocator_zookeeper_tests.cpp
index 1034d72..e517f50 100644
--- a/src/tests/allocator_zookeeper_tests.cpp
+++ b/src/tests/allocator_zookeeper_tests.cpp
@@ -179,7 +179,7 @@
     .WillOnce(DoAll(InvokeFrameworkAdded(&allocator2),
                     FutureSatisfy(&frameworkAdded)));
 
-  EXPECT_CALL(sched, reregistered(&driver, _));
+  EXPECT_CALL(sched, registered(&driver, _, _));
 
   AWAIT_READY(frameworkAdded);
 
@@ -301,7 +301,7 @@
     .WillOnce(DoAll(InvokeSlaveAdded(&allocator2),
                     FutureSatisfy(&slaveAdded)));
 
-  EXPECT_CALL(sched, reregistered(&driver, _));
+  EXPECT_CALL(sched, registered(&driver, _, _));
 
   AWAIT_READY(slaveAdded);
 
diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp
index 4afbbec..cdf4d66 100644
--- a/src/tests/fault_tolerance_tests.cpp
+++ b/src/tests/fault_tolerance_tests.cpp
@@ -594,7 +594,9 @@
 
 
 // This test ensures that a framework connecting with a
-// failed over master gets a re-registered callback.
+// failed over master gets a registered callback.
+// Note that this behavior might change in the future and
+// the scheduler might receive a re-registered callback.
 TEST_F(FaultToleranceTest, MasterFailover)
 {
   Try<PID<Master> > master = StartMaster();
@@ -619,9 +621,9 @@
 
   EXPECT_CALL(sched, disconnected(&driver));
 
-  Future<Nothing> reregistered;
-  EXPECT_CALL(sched, reregistered(&driver, _))
-    .WillOnce(FutureSatisfy(&reregistered));
+  Future<Nothing> registered;
+  EXPECT_CALL(sched, registered(&driver, _, _))
+    .WillOnce(FutureSatisfy(&registered));
 
   // Simulate a new master detected message to the scheduler.
   NewMasterDetectedMessage newMasterDetectedMsg;
@@ -629,8 +631,8 @@
 
   process::post(frameworkRegisteredMessage.get().to, newMasterDetectedMsg);
 
-  // Framework should get a re-register callback.
-  AWAIT_READY(reregistered);
+  // Framework should get a registered callback.
+  AWAIT_READY(registered);
 
   driver.stop();
   driver.join();
