diff --git a/openbsc/contrib/gprs/gprs-split-trace-by-tlli.lua b/openbsc/contrib/gprs/gprs-split-trace-by-tlli.lua
index ef16105..018c377 100644
--- a/openbsc/contrib/gprs/gprs-split-trace-by-tlli.lua
+++ b/openbsc/contrib/gprs/gprs-split-trace-by-tlli.lua
@@ -14,29 +14,29 @@
 		-- we will be called once for every IP Header.
 		-- If there's more than one IP header in a given packet we'll dump the packet once per every header
 		function tap.packet(pinfo,tvb,ip)
-			local ttli = field_tlli()
-			if not ttli then
+			local tlli = field_tlli()
+			if not tlli then
 				return
 			end
 
-			local ttli_str = tostring(ttli)
-			ttli_dmp = dumpers[ttli_str]
-			if not ttli_dmp then
-				local ttli_hex = string.format("0x%x", tonumber(ttli_str))
-				print("Creating dump for TLLI " .. ttli_hex)
-				ttli_dmp = Dumper.new_for_current(dir .. "/" .. ttli_hex .. ".pcap")
-				dumpers[ttli_str] = ttli_dmp
+			local tlli_str = tostring(tlli)
+			tlli_dmp = dumpers[tlli_str]
+			if not tlli_dmp then
+				local tlli_hex = string.format("0x%x", tonumber(tlli_str))
+				print("Creating dump for TLLI " .. tlli_hex)
+				tlli_dmp = Dumper.new_for_current(dir .. "/" .. tlli_hex .. ".pcap")
+				dumpers[tlli_str] = tlli_dmp
 			end
-			ttli_dmp:dump_current()
-			ttli_dmp:flush()
+			tlli_dmp:dump_current()
+			tlli_dmp:flush()
 		end
 		function tap.draw()
-			for ttli,dumper in pairs(dumpers) do
+			for tlli,dumper in pairs(dumpers) do
 				 dumper:flush()
 			end
 		end
 		function tap.reset()
-			for ttli,dumper in pairs(dumpers) do
+			for tlli,dumper in pairs(dumpers) do
 				 dumper:close()
 			end
 			dumpers = {}
diff --git a/openbsc/contrib/gprs/gprs-verify-nu.lua b/openbsc/contrib/gprs/gprs-verify-nu.lua
index f6f42c4..4ec7c61 100644
--- a/openbsc/contrib/gprs/gprs-verify-nu.lua
+++ b/openbsc/contrib/gprs/gprs-verify-nu.lua
@@ -25,11 +25,11 @@
 			end
 
 			local ip_src = tostring(ip.ip_src)
-			local bssgp_ttli = tostring(bssgp_tlli)
+			local bssgp_tlli = tostring(bssgp_tlli)
 			local llc_nu = tostring(llc_nu)
 			local llc_sapi = tostring(llc_sapi)
 
-			local src_key = ip_src .. "-" .. bssgp_ttli .. "-" .. llc_sapi
+			local src_key = ip_src .. "-" .. bssgp_tlli .. "-" .. llc_sapi
 			local last_nu = nu_state_src[src_key]
 			if not last_nu then
 				-- print("Establishing mapping for " .. src_key)
@@ -43,7 +43,7 @@
 
 			nu_state_src[src_key] = llc_nu
 			if tonumber(last_nu) + 1 ~= tonumber(llc_nu) then
-				print("JUMP in N(U) on TLLI " .. tohex(bssgp_ttli) .. " and SAPI: " .. llc_sapi)
+				print("JUMP in N(U) on TLLI " .. tohex(bssgp_tlli) .. " and SAPI: " .. llc_sapi)
 				print("\t last: " .. last_nu .. " now: " .. llc_nu)
 			end
 		end
