diff --git a/require-ess/tools/driver.makefile b/require-ess/tools/driver.makefile
index 89cfa6acc6aee603f67d5ca2241b9e4b31e7f9ad..c439a9b1760de3461db0707b263dbd8ea6b4f906 100644
--- a/require-ess/tools/driver.makefile
+++ b/require-ess/tools/driver.makefile
@@ -320,6 +320,7 @@ define fetch_module_versions
   lm := $$(shell echo $1 | tr '[:upper:]' '[:lower:]')
   ifneq ($$(strip $$(filter $(INSTALLED_MODULES),$$(lm))),)
     $$(lm)_VERSION := $($1_DEP_VERSION$2)
+    $$(lm)_VERSION := $$(lastword $$(call FETCH_BUILD_NUMBER,$(E3_SITEMODS_PATH),$$(lm)) $$(call FETCH_BUILD_NUMBER,$(EPICS_MODULES),$$(lm)))
     MODULES += $$(lm)
     REQ += $$(lm)
   else
@@ -338,7 +339,10 @@ export REQ
 
 # Fetches the data from .dep files to be parsed by the above
 define fetch_deps
-$(shell cat $(lastword $(wildcard $(addsuffix /$1/$($1_VERSION)/lib/$(T_A)/$1.dep,$(E3_SITEMODS_PATH) $(EPICS_MODULES)))) | sed '1d')
+$(shell cat $(or \
+  $(lastword $(wildcard $(addsuffix /$1/$($1_VERSION)/lib/$(T_A)/$1.dep,$(E3_SITEMODS_PATH) $(EPICS_MODULES)))),\
+  $(error Module '$1' version '$($1_VERSION)' does not exist.)) \
+  | sed '1d')
 endef
 
 # Used to recurse through versions: recursively fetches all of the dependencies
@@ -453,7 +457,7 @@ INSTALL_INCLUDES =
 # shell script build_number.sh included with require.
 
 define ADD_INCLUDES_TEMPLATE
-INSTALL_INCLUDES += $$(patsubst %,-I${2}/$(1)/%/include,$$(call FETCH_BUILD_NUMBER,$(2),$(1)))
+INSTALL_INCLUDES += $$(patsubst %,-I${2}/${1}/%/include,$${${1}_VERSION})
 endef
 $(foreach m,$(filter-out $(PRJ),$(notdir $(wildcard ${E3_SITEMODS_PATH}/*))),$(eval $(call ADD_INCLUDES_TEMPLATE,$m,$(E3_SITEMODS_PATH))))
 $(foreach m,$(filter-out $(PRJ),$(notdir $(wildcard ${EPICS_MODULES}/*)))   ,$(eval $(call ADD_INCLUDES_TEMPLATE,$m,$(EPICS_MODULES))))
@@ -518,7 +522,7 @@ DBDFILES += $(patsubst %.stt,%_snl.dbd,$(notdir $(filter %.stt,${SRCS})))
 DBDFILES += $(patsubst %.gt,%.dbd,$(notdir $(filter %.gt,${SRCS})))
 
 # snc location
-SNCALL=$(shell ls  -dv $(E3_SITEMODS_PATH)/sequencer/$(call FETCH_BUILD_NUMBER,$(E3_SITEMODS_PATH),sequencer)/bin/$(EPICS_HOST_ARCH) 2> /dev/null)
+SNCALL=$(shell ls  -dv $(E3_SITEMODS_PATH)/sequencer/$(sequencer_VERSION)/bin/$(EPICS_HOST_ARCH) 2> /dev/null))
 SNC=$(lastword $(SNCALL))/snc
 
 ifneq (,$(strip $(VLIBS)))
@@ -791,7 +795,7 @@ ${DEPFILE}: ${LIBOBJS} $(USERMAKEFILE)
 # Check dependencies on other module headers.
 	cat *.d 2>/dev/null | sed 's/ /\n/g' | grep -v '$(EPICS_BASE)/include' | sed -n '$(DEP_PARSER)' > $@.tmp
 # Manully added dependencies: ${REQ}
-	@$(foreach m,${REQ},echo "$m $(or $(and $(or $(wildcard $(EPICS_MODULES)/$m/$($m_VERSION)),$(wildcard $(E3_SITEMODS_PATH)/$m/$($m_VERSION))),$($m_VERSION)),$(error REQUIRED module '$m' version '$($m_VERSION)' does not exist))" >> $@.tmp;)
+	@$(foreach m,${REQ},echo "$m $($m_VERSION)" >> $@.tmp;)
 	cat $@.tmp | sort -u >> $@
 
 endif # In O.* directory
diff --git a/tests/test_build.py b/tests/test_build.py
index 580ceff8282b0a2e6f690d60fc4652654db79243..fa12115a7b65f6d66359dbc6459b3a3d6dc2b400 100644
--- a/tests/test_build.py
+++ b/tests/test_build.py
@@ -10,6 +10,7 @@ MODULE_VERSION = "0.0.0+0"
 MODULE_VERSION_NO_BUILD = "0.0.0"
 
 RE_MISSING_FILE = "No rule to make target [`']{filename}'"
+RE_MISSING_VERSION = "Module '{module}' version '{version}' does not exist."
 
 
 def create_patch_file(path, desc):
@@ -97,6 +98,27 @@ def test_missing_requirement(wrapper):
     assert 'Invalid dependency "FOO_DEP_VERSION"; pruning' in errs
 
 
+def test_missing_dependent_version(wrappers):
+    wrapper_dep = wrappers.get()
+    wrapper_main = wrappers.get()
+
+    cell_path = wrapper_main.path / "cellMods"
+
+    rc, *_ = wrapper_dep.run_make("cellinstall", cell_path=cell_path)
+    assert rc == 0
+
+    missing_version = "not_a_real_version"
+    wrapper_main.add_var_to_config_module(
+        f"{wrapper_dep.name}_DEP_VERSION", missing_version
+    )
+    rc, _, errs = wrapper_main.run_make("cellbuild")
+    assert rc == 2
+    assert re.search(
+        RE_MISSING_VERSION.format(module=wrapper_dep.name, version=missing_version),
+        errs,
+    )
+
+
 def test_header_install_location(wrapper):
     subdir = wrapper.module_dir / "db" / "subdir"
     subdir.mkdir(parents=True)