When I compiled your code, I got:
SoftwareSerial\SoftwareSerial.cpp.o: In function
__vector_3': C:\Users\PaulS\Documents\Arduino_160\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:227: multiple definition of
__vector_3'
GSM\GSM3SoftSerial.cpp.o:C:\Users\PaulS\Documents\Arduino_160\libraries\GSM\src/GSM3SoftSerial.cpp:499: first defined hereSoftwareSerial\SoftwareSerial.cpp.o: In function
SoftwareSerial::read()': C:\Users\PaulS\Documents\Arduino_160\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of
__vector_4'
GSM\GSM3SoftSerial.cpp.o:C:\Users\PaulS\Documents\Arduino_160\libraries\GSM\src/GSM3SoftSerial.cpp:487: first defined hereSoftwareSerial\SoftwareSerial.cpp.o: In function
SoftwareSerial::read()': C:\Users\PaulS\Documents\Arduino_160\hardware\arduino\avr\libraries\SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of
__vector_5'
GSM\GSM3SoftSerial.cpp.o:C:\Users\PaulS\Documents\Arduino_160\libraries\GSM\src/GSM3SoftSerial.cpp:487: first defined here
collect2.exe: error: ld returned 1 exit status
Error compiling.
You can NOT use SoftwareSerial and GSM at the same time.