diff --git a/configure.in b/configure.in
index bd9c9a010d412cff46fd8e5b9e979005f59cc462..55790f4fa1edc3b95633c470c94cdcdbaf49be38 100644
--- a/configure.in
+++ b/configure.in
@@ -741,7 +741,7 @@ plugin_require(from_analysis,callgraph)
 check_plugin(gui,src/plugins/gui,[support for gui],yes)
 
 plugin_require_external(gui,lablgtk)
-plugin_require_external(gui,gnomecanvas)
+plugin_use_external(gui,gnomecanvas)
 plugin_require_external(gui,gtksourceview)
 plugin_use_external(gui,dot)
 
@@ -935,8 +935,9 @@ USE_LABLGTK="$USE_LABLGTK$USE_GNOMECANVAS"
   fi
 
 configure_library([GTKSOURCEVIEW],
-                  [$LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview2.$LIB_SUFFIX],
-                  [lablgtksourceview2.$LIB_SUFFIX not found],
+                  [$LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview2.$LIB_SUFFIX,
+                   $LABLGTKPATH_FOR_CONFIGURE/lablgtksourceview3.$LIB_SUFFIX],
+                  [lablgtksourceview not found],
                   no)
 
 configure_library([GNOMECANVAS],
diff --git a/share/Makefile.config.in b/share/Makefile.config.in
index 993b677842a1f90c021bf18d911c88be1b97448a..5a27e4975e6374161d72f85218da960d2b445808 100644
--- a/share/Makefile.config.in
+++ b/share/Makefile.config.in
@@ -106,6 +106,9 @@ LABLGTK_PATH ?=@LABLGTK_PATH@
 # lablgtksourceview
 HAS_GTKSOURCEVIEW ?=@HAS_GTKSOURCEVIEW@
 
+GTKSOURCEVIEW:=\
+  $(patsubst lablgtk%,lablgtk2.%,$(basename $(notdir @GTKSOURCEVIEW@)))
+
 # lablgnomecanvas
 HAS_GNOMECANVAS	?=@HAS_GNOMECANVAS@
 
@@ -190,7 +193,10 @@ LIBRARY_NAMES += yojson
 endif
 
 ifneq ($(ENABLE_GUI),no)
-LIBRARY_NAMES_GUI = lablgtk2 lablgtk2.gnomecanvas lablgtk2.sourceview2
+  LIBRARY_NAMES_GUI = lablgtk2 $(GTKSOURCEVIEW)
+  ifeq ($(HAS_GNOMECANVAS),yes)
+    LIBRARY_NAMES_GUI+=lablgtk2.gnomecanvas
+  endif
 else
 LIBRARY_NAMES_GUI =
 endif