*** ./Old/MediaSession.cpp	2008-10-08 00:37:40.000000000 +0200
--- ./New/MediaSession.cpp	2008-10-31 14:04:38.000000000 +0200
***************
*** 799,808 ****
  	fRTPSource = NULL; // Note!
  	parentSession().isRealNetworksRDT = True;
  #endif
        } else if (  strcmp(fCodecName, "PCMU") == 0 // PCM u-law audio
  		   || strcmp(fCodecName, "GSM") == 0 // GSM audio
  		   || strcmp(fCodecName, "PCMA") == 0 // PCM a-law audio
- 		   || strcmp(fCodecName, "L16") == 0 // 16-bit linear audio
  		   || strcmp(fCodecName, "MP1S") == 0 // MPEG-1 System Stream
  		   || strcmp(fCodecName, "MP2P") == 0 // MPEG-2 Program Stream
  		   || strcmp(fCodecName, "L8") == 0 // 8-bit linear audio
--- 799,818 ----
  	fRTPSource = NULL; // Note!
  	parentSession().isRealNetworksRDT = True;
  #endif
+ 	  } else if (strcmp(fCodecName, "L16") == 0) { // // 16-bit linear audio
+ 		  char* mimeType = new char[strlen(mediumName()) + strlen(codecName()) + 2] ;
+  		  sprintf(mimeType, "%s/%s", mediumName(), codecName());
+ 		  // With endian swap
+ 		  fRTPSource = SimpleRTPSource::createNew(env(), fRTPSocket, fRTPPayloadFormat,
+  			  fRTPTimestampFrequency, mimeType,
+  			  (unsigned)0 /*no offset*/,
+  			  doNormalMBitRule);
+  
+ 		  fReadSource = EndianSwap16::createNew(env(), fRTPSource);
+ 		  delete[] mimeType;
  	  } else if (  strcmp(fCodecName, "PCMU") == 0 // PCM u-law audio
  		   || strcmp(fCodecName, "GSM") == 0 // GSM audio
  		   || strcmp(fCodecName, "PCMA") == 0 // PCM a-law audio
  		   || strcmp(fCodecName, "MP1S") == 0 // MPEG-1 System Stream
  		   || strcmp(fCodecName, "MP2P") == 0 // MPEG-2 Program Stream
  		   || strcmp(fCodecName, "L8") == 0 // 8-bit linear audio
