diff --git a/src/field_instance.h b/src/field_instance.h
index 5ad89cb..4abe853 100644
--- a/src/field_instance.h
+++ b/src/field_instance.h
@@ -91,7 +91,10 @@
   }
 
   void GetDefault(std::unique_ptr<protobuf::Message>* out) const {
-    out->reset();
+    out->reset(reflection()
+                   .GetMessageFactory()
+                   ->GetPrototype(descriptor_->message_type())
+                   ->New());
   }
 
   void Load(int32_t* value) const {
diff --git a/src/mutator.cc b/src/mutator.cc
index 55b3ea3..a400fc8 100644
--- a/src/mutator.cc
+++ b/src/mutator.cc
@@ -378,15 +378,21 @@
                                   size_increase_hint_));
   }
 
-  void Mutate(std::unique_ptr<Message>*) const {}
+  void Mutate(std::unique_ptr<Message>* message) const {
+    assert(!enforce_changes_);
+    assert(*message);
+    if (GetRandomBool(mutator_->random(), 100)) return;
+    mutator_->Mutate(message->get(), size_increase_hint_);
+  }
 
  private:
   template <class T, class F>
   void RepeatMutate(T* value, F mutate,
                     size_t unchanged_one_out_of = 100) const {
     if (!enforce_changes_ &&
-        GetRandomBool(mutator_->random(), unchanged_one_out_of))
+        GetRandomBool(mutator_->random(), unchanged_one_out_of)) {
       return;
+    }
     T tmp = *value;
     for (int i = 0; i < 10; ++i) {
       *value = mutate(*value);
