diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc
index 1a6cb7f..b9338c6 100644
--- a/libs/ardour/midi_buffer.cc
+++ b/libs/ardour/midi_buffer.cc
@@ -178,9 +178,17 @@ MidiBuffer::push_back(TimeType time, size_t size, const uint8_t* data)
 #endif
 
 	if (_size + stamp_size + size >= _capacity) {
+#if 1
+		fprintf(stderr,
+			"WARNING: MidiBuffer dropping event (buffer full):");
+		for (size_t i=0; i < size; ++i)
+			printf(" 0x%02x", (int)data[i]);
+		printf("\n");
+#else
 		cerr << "MidiBuffer::push_back2 failed (buffer is full; _size = " << _size << " capacity " 
 		     << _capacity << " stamp " << stamp_size << " size = " << size << ")" << endl;
 		PBD::stacktrace (cerr, 20);
+#endif
 		return false;
 	}
 
diff --git a/libs/ardour/thread_buffers.cc b/libs/ardour/thread_buffers.cc
index e469187..a45cb6d 100644
--- a/libs/ardour/thread_buffers.cc
+++ b/libs/ardour/thread_buffers.cc
@@ -60,7 +60,9 @@ ThreadBuffers::ensure_buffers (ChanCount howmany)
 
 	for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
 		size_t count = std::max (scratch_buffers->available().get(*t), howmany.get(*t));
-		size_t size = _engine->raw_buffer_size (*t) / sizeof (Sample);
+		size_t size = (*t == DataType::MIDI)
+		  ?_engine->raw_buffer_size (*t)
+		  :_engine->raw_buffer_size (*t) / sizeof (Sample);
 
 		scratch_buffers->ensure_buffers (*t, count, size);
 		mix_buffers->ensure_buffers (*t, count, size);
