diff --git a/src/compiler_llvm/runtime_support_llvm.cc b/src/compiler_llvm/runtime_support_llvm.cc
index 99f9fee..b481b57 100644
--- a/src/compiler_llvm/runtime_support_llvm.cc
+++ b/src/compiler_llvm/runtime_support_llvm.cc
@@ -146,12 +146,10 @@
   if (Runtime::Current()->IsMethodTracingActive()) {
     TraceMethodUnwindFromCode(thread);
   }
-  thread->SetStackEndForStackOverflow();  // Allow space on the stack for constructor to execute
-  thread->ThrowNewExceptionF("Ljava/lang/StackOverflowError;",
-      "stack size %zdkb; default stack size: %zdkb",
-      thread->GetStackSize() / KB,
-      Runtime::Current()->GetDefaultStackSize() / KB);
-  thread->ResetDefaultStackEnd();  // Return to default stack size
+  thread->SetStackEndForStackOverflow();  // Allow space on the stack for constructor to execute.
+  thread->ThrowNewExceptionF("Ljava/lang/StackOverflowError;", "stack size %s",
+                             PrettySize(thread->GetStackSize()).c_str());
+  thread->ResetDefaultStackEnd();  // Return to default stack size.
 }
 
 void art_throw_exception_from_code(Object* exception) {
diff --git a/src/oat/runtime/support_throw.cc b/src/oat/runtime/support_throw.cc
index 4d4890d..4293228 100644
--- a/src/oat/runtime/support_throw.cc
+++ b/src/oat/runtime/support_throw.cc
@@ -75,15 +75,14 @@
 
 extern "C" void artThrowStackOverflowFromCode(Thread* thread, Method** sp) {
   FinishCalleeSaveFrameSetup(thread, sp, Runtime::kSaveAll);
-  // Remove extra entry pushed onto second stack during method tracing
+  // Remove extra entry pushed onto second stack during method tracing.
   if (Runtime::Current()->IsMethodTracingActive()) {
     TraceMethodUnwindFromCode(thread);
   }
-  thread->SetStackEndForStackOverflow();  // Allow space on the stack for constructor to execute
-  thread->ThrowNewExceptionF("Ljava/lang/StackOverflowError;",
-      "stack size %zdkb; default stack size: %zdkb",
-      thread->GetStackSize() / KB, Runtime::Current()->GetDefaultStackSize() / KB);
-  thread->ResetDefaultStackEnd();  // Return to default stack size
+  thread->SetStackEndForStackOverflow();  // Allow space on the stack for constructor to execute.
+  thread->ThrowNewExceptionF("Ljava/lang/StackOverflowError;", "stack size %s",
+                             PrettySize(thread->GetStackSize()).c_str());
+  thread->ResetDefaultStackEnd();  // Return to default stack size.
   thread->DeliverException();
 }
 
diff --git a/src/runtime.cc b/src/runtime.cc
index 74f6652..fdbd70a 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -56,7 +56,7 @@
 Runtime::Runtime()
     : is_compiler_(false),
       is_zygote_(false),
-      default_stack_size_(Thread::kDefaultStackSize),
+      default_stack_size_(0),
       heap_(NULL),
       monitor_list_(NULL),
       thread_list_(NULL),
@@ -312,8 +312,8 @@
 
   parsed->heap_initial_size_ = Heap::kInitialSize;
   parsed->heap_maximum_size_ = Heap::kMaximumSize;
-  parsed->heap_growth_limit_ = 0;  // 0 means no growth limit
-  parsed->stack_size_ = Thread::kDefaultStackSize;
+  parsed->heap_growth_limit_ = 0;  // 0 means no growth limit.
+  parsed->stack_size_ = 0; // 0 means default.
 
   parsed->is_compiler_ = false;
   parsed->is_zygote_ = false;
diff --git a/src/thread.cc b/src/thread.cc
index 8ef784f..a87e550 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -152,7 +152,6 @@
   // so include that here to support apps that expect large native stacks.
   stack_size += 1 * MB;
 
-
   // It's not possible to request a stack smaller than the system-defined PTHREAD_STACK_MIN.
   if (stack_size < PTHREAD_STACK_MIN) {
     stack_size = PTHREAD_STACK_MIN;
diff --git a/src/thread.h b/src/thread.h
index f621d60..310f629 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -93,8 +93,6 @@
   static const size_t kStackOverflowReservedBytes = 8 * KB;
 #endif
 
-  static const size_t kDefaultStackSize = 16 * KB;
-
   class StackVisitor {
    public:
     virtual ~StackVisitor() {}
diff --git a/src/thread_list.cc b/src/thread_list.cc
index a1e9d2f..0ec9bdd 100644
--- a/src/thread_list.cc
+++ b/src/thread_list.cc
@@ -35,7 +35,6 @@
       thread_exit_cond_("thread exit condition variable"),
       thread_suspend_count_lock_("thread suspend count lock", kThreadSuspendCountLock),
       thread_suspend_count_cond_("thread suspend count condition variable") {
-  VLOG(threads) << "Default stack size: " << PrettySize(Runtime::Current()->GetDefaultStackSize());
 }
 
 ThreadList::~ThreadList() {
