Issue with SoftwareSerial (Arduino 1.0+)

void loop()
{
	byte input;
	if (Serial.available())
	{
		input = Serial.read();
		MIDI.write(input);
        }

        if(MIDI.available() > 0)
        {
		input = MIDI.read();
		Serial.println(input, DEC);
	}
}

This is what you should be doing.

Regarding why I read regardless of whether there is anything to read it is for two reasons.
Firstly it is one way to get anything back.

Getting garbage, just for the sake of getting something, is stupid.

Secondly there should be something to read.

Why? Sooner or later, yes probably. I don't know what you have connected to the software serial port, so I'm not necessarily willing to concede that this statement is true. What I do know, though, is that there will NOT be data to read nanoseconds after having sent something to the software serial port. At least, not in response to what was just sent.

The serial port called MIDI is directly wired to itself, TX<->RX

Oh, well, that explains a lot. SoftwareSerial doesn't work like that. It can NOT be used for a loopback test because it can not listen and send at the same time.