--- a/gr-vocoder/lib/CMakeLists.txt
+++ b/gr-vocoder/lib/CMakeLists.txt
@@ -18,6 +18,34 @@
 # Boston, MA 02110-1301, USA.
 
 ########################################################################
+# Check for system libgsm....
+########################################################################
+if(NOT GR_USE_SYSTEM_LIBGSM)
+  find_path(LIBGSM_INCLUDE_DIR NAMES gsm.h
+    PATHS
+    ${LIBGSM_PKG_INCLUDE_DIRS}
+    /usr/include/gsm
+    /usr/include
+  )
+
+  find_library(LIBGSM_LIBRARIES NAMES gsm
+    PATHS
+    ${LIBGSM_PKG_LIBRARY_DIRS}
+    /usr/lib
+  )
+
+if(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES)
+  set(GR_USE_SYSTEM_LIBGSM TRUE CACHE INTERNAL "system libgsm found")
+  message(STATUS "Found libgsm: ${LIBGSM_INCLUDE_DIR}, ${LIBGSM_LIBRARIES}")
+else(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES)
+  set(GR_USE_SYSTEM_LIBGSM FALSE CACHE INTERNAL "system libgsm found")
+  message(STATUS "system libgsm not found.")
+endif(LIBGSM_INCLUDE_DIR AND LIBGSM_LIBRARIES)
+
+mark_as_advanced(LIBGSM_INCLUDE_DIR LIBGSM_LIBRARIES)
+endif(NOT GR_USE_SYSTEM_LIBGSM)
+
+########################################################################
 # Setup the include and linker paths
 ########################################################################
 include_directories(
@@ -55,12 +83,17 @@
 ########################################################################
 GR_INCLUDE_SUBDIRECTORY(codec2)
 GR_INCLUDE_SUBDIRECTORY(g7xx)
-GR_INCLUDE_SUBDIRECTORY(gsm)
+if(NOT GR_USE_SYSTEM_LIBGSM)
+ GR_INCLUDE_SUBDIRECTORY(gsm)
+endif(NOT GR_USE_SYSTEM_LIBGSM)
 
 list(APPEND vocoder_libs
     gnuradio-core
     ${Boost_LIBRARIES}
 )
+if(GR_USE_SYSTEM_LIBGSM)
+  list(APPEND vocoder_libs ${LIBGSM_LIBRARIES})
+endif(GR_USE_SYSTEM_LIBGSM)
 
 add_library(gnuradio-vocoder SHARED ${gr_vocoder_sources})
 target_link_libraries(gnuradio-vocoder ${vocoder_libs})
