diff --git a/libs/midi++2/jack_midiport.cc b/libs/midi++2/jack_midiport.cc
index 0464649..5ebb55c 100644
--- a/libs/midi++2/jack_midiport.cc
+++ b/libs/midi++2/jack_midiport.cc
@@ -243,7 +243,9 @@ JACK_MidiPort::create_ports(const XMLNode& node)
                _jack_output_port = jack_port_register(_jack_client,
                                                       string(desc.tag).append("_out").c_str(),
                                                       JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0);
-               jack_midi_clear_buffer(jack_port_get_buffer(_jack_output_port, nframes));
+               if (_jack_output_port) {
+                       jack_midi_clear_buffer(jack_port_get_buffer(_jack_output_port, nframes));
+               }
                ret = ret && (_jack_output_port != NULL);
        }
        
@@ -251,7 +253,9 @@ JACK_MidiPort::create_ports(const XMLNode& node)
                _jack_input_port = jack_port_register(_jack_client,
                                                      string(desc.tag).append("_in").c_str(),
                                                      JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0);
-               jack_midi_clear_buffer(jack_port_get_buffer(_jack_input_port, nframes));
+               if (_jack_input_port) {
+                       jack_midi_clear_buffer(jack_port_get_buffer(_jack_input_port, nframes));
+               }
                ret = ret && (_jack_input_port != NULL);
        }

