diff --git a/src/rig-daemon-check.c b/src/rig-daemon-check.c
index c5c0d14..0ced05a 100644
--- src/rig-daemon-check.c
+++ src/rig-daemon-check.c
@@ -42,6 +42,9 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <hamlib/rig.h>
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
 #include "rig-data.h"
 #include "grig-debug.h"
 #include "rig-daemon-check.h"
@@ -396,15 +399,26 @@ rig_daemon_check_mode     (RIG               *myrig,
 			   this list is good for current mode   AND
 			   the current frequency is within this range
 			*/
+#if HAMLIB_MAJOR_VERSION >= 4
 			if (!found_mode &&
 			    ((mode & myrig->state.rx_range_list[i].modes) == mode) &&
-			    (get->freq1 >= myrig->state.rx_range_list[i].start)    &&
-			    (get->freq1 <= myrig->state.rx_range_list[i].end)) {
-					
-				found_mode = 1;
-				get->fmin = myrig->state.rx_range_list[i].start;
-				get->fmax = myrig->state.rx_range_list[i].end;
+			    (get->freq1 >= myrig->state.rx_range_list[i].startf)    &&
+			    (get->freq1 <= myrig->state.rx_range_list[i].endf)) {
+
+				get->fmin = myrig->state.rx_range_list[i].startf;
+				get->fmax = myrig->state.rx_range_list[i].endf;
+#else
+                        if (!found_mode &&
+                            ((mode & myrig->state.rx_range_list[i].modes) == mode) &&
+                            (get->freq1 >= myrig->state.rx_range_list[i].start)    &&
+                            (get->freq1 <= myrig->state.rx_range_list[i].end)) {
+
+                                get->fmin = myrig->state.rx_range_list[i].start;
+                                get->fmax = myrig->state.rx_range_list[i].end;
+#endif
 				
+				found_mode = 1;
+
 				grig_debug_local (RIG_DEBUG_VERBOSE,
 						  _("%s: Found frequency range for mode %d"),
 						  __FUNCTION__, mode);
diff --git a/src/rig-daemon.c b/src/rig-daemon.c
index ddd922f..f86c3aa 100644
--- src/rig-daemon.c
+++ src/rig-daemon.c
@@ -50,6 +50,9 @@
 #include <hamlib/rig.h>
 #include <string.h>
 #include <stdlib.h>
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
 #include "grig-config.h"
 #include "grig-debug.h"
 #include "rig-anomaly.h"
@@ -1673,13 +1676,23 @@ rig_daemon_exec_cmd         (rig_cmd_t cmd,
 						/* is this list good for current mode?
 						   is the current frequency within this range?
 						*/
+#if HAMLIB_MAJOR_VERSION >= 4
 						if (((mode & myrig->state.rx_range_list[i].modes) == mode) &&
-						    (get->freq1 >= myrig->state.rx_range_list[i].start)    &&
-						    (get->freq1 <= myrig->state.rx_range_list[i].end)) {
-					
+						    (get->freq1 >= myrig->state.rx_range_list[i].startf)    &&
+						    (get->freq1 <= myrig->state.rx_range_list[i].endf)) {
+
+							get->fmin = myrig->state.rx_range_list[i].startf;
+							get->fmax = myrig->state.rx_range_list[i].endf;
+#else
+                                                if (((mode & myrig->state.rx_range_list[i].modes) == mode) &&
+                                                    (get->freq1 >= myrig->state.rx_range_list[i].start)    &&
+                                                    (get->freq1 <= myrig->state.rx_range_list[i].end)) {
+
+                                                        get->fmin = myrig->state.rx_range_list[i].start;
+                                                        get->fmax = myrig->state.rx_range_list[i].end;
+#endif
+
 							found_mode = 1;
-							get->fmin = myrig->state.rx_range_list[i].start;
-							get->fmax = myrig->state.rx_range_list[i].end;
 				
 							grig_debug_local (RIG_DEBUG_VERBOSE,
 									  _("%s: Found frequency range for mode %d"),
diff --git a/configure.ac b/configure.ac
index 86f1091..de6ee39 100644
--- configure.ac
+++ configure.ac
@@ -89,7 +89,9 @@ GDK_V=`pkg-config --modversion gdk-2.0`
 GTK_V=`pkg-config --modversion gtk+-2.0`
 
 AC_DEFINE_UNQUOTED([HAMLIB_VERSION],[`pkg-config --modversion hamlib`],["Hamlib version"])
-
+AC_DEFINE_UNQUOTED([HAMLIB_MAJOR_VERSION],[`pkg-config --modversion hamlib | cut -d'.' -f1`],["Hamlib major version"])
+AC_DEFINE_UNQUOTED([HAMLIB_MINOR_VERSION],[`pkg-config --modversion hamlib | cut -d'.' -f2 | cut -d'~' -f1`],["Hamlib minor version"])
+AC_DEFINE_UNQUOTED([HAMLIB_PATCH_VERSION],[`pkg-config --modversion hamlib | cut -d'.' -f2 | cut -d'~' -f2`],["Hamlib patch version"])
 
 AC_SUBST(CFLAGS)
 AC_SUBST(LDFLAGS)
diff --git a/configure b/configure
index acb75d2..9e00929 100755
--- configure
+++ configure
@@ -14091,8 +14091,19 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define HAMLIB_MAJOR_VERSION `pkg-config --modversion hamlib | cut -d'.' -f1`
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAMLIB_MINOR_VERSION `pkg-config --modversion hamlib | cut -d'.' -f2 | cut -d'~' -f1`
+_ACEOF
 
 
+cat >>confdefs.h <<_ACEOF
+#define HAMLIB_PATCH_VERSION `pkg-config --modversion hamlib | cut -d'.' -f2 | cut -d'~' -f2`
+_ACEOF
 
 
 ac_config_files="$ac_config_files Makefile doc/Makefile doc/man/grig.1 doc/man/Makefile grig.spec src/Makefile pixmaps/Makefile po/Makefile.in"
--- config.h.in.orig	2015-12-20 22:15:13.000000000 +0100
+++ config.h.in	2020-01-27 13:07:46.000000000 +0100
@@ -10,6 +10,15 @@
 /* The gettext domain */
 #undef GETTEXT_PACKAGE
 
+/* "Hamlib major version" */
+#undef HAMLIB_MAJOR_VERSION
+
+/* "Hamlib minor version" */
+#undef HAMLIB_MINOR_VERSION
+
+/* "Hamlib patch version" */
+#undef HAMLIB_PATCH_VERSION
+
 /* "Hamlib version" */
 #undef HAMLIB_VERSION
 
