diff --git a/game/engine/Zone.lua b/game/engine/Zone.lua
index e01268106c2dcd2120b04359834b8c692b553140..5629fb20a87198c6e1417aa09e4d30893a384ce7 100644
--- a/game/engine/Zone.lua
+++ b/game/engine/Zone.lua
@@ -485,6 +485,7 @@ function _M:newLevel(level_data, lev, old_lev, game)
 
 	-- Check for connectivity from entrance to exit
 	local a = Astar.new(map, game:getPlayer())
+	print("[LEVEL GENERATION] checking entrance to exit A*", ux, uy, "to", dx, dy)
 	if ux and uy and dx and dy and (ux ~= dx or uy ~= dy) and not a:calc(ux, uy, dx, dy) then
 		print("Level unconnected, no way from entrance to exit", ux, uy, "to", dx, dy)
 		level:removed()
@@ -499,6 +500,7 @@ function _M:newLevel(level_data, lev, old_lev, game)
 			else cx, cy = spot.check_connectivity.x, spot.check_connectivity.y
 			end
 
+			print("[LEVEL GENERATION] checking A*", spot.x, spot.y, "to", cx, cy)
 			if spot.x and spot.y and cx and cy and (spot.x ~= cx or spot.y ~= cy) and not a:calc(spot.x, spot.y, cx, cy) then
 				print("Level unconnected, no way from", spot.x, spot.y, "to", cx, cy)
 				level:removed()
diff --git a/game/engine/generator/map/Static.lua b/game/engine/generator/map/Static.lua
index 834bc9df64cc8fb9feeea209bd8d64153250261b..2cf7d957a66ea4122fab1d328a4bbe43215fdf93 100644
--- a/game/engine/generator/map/Static.lua
+++ b/game/engine/generator/map/Static.lua
@@ -26,6 +26,7 @@ function _M:init(zone, map, level, data)
 	engine.Generator.init(self, zone, map, level)
 	self.grid_list = zone.grid_list
 	self.subgen = {}
+	self.spots = {}
 	self.data = data
 
 	if data.adjust_level then
@@ -68,6 +69,15 @@ function _M:loadMap(file)
 		addData = function(t)
 			table.merge(self.level.data, t, true)
 		end,
+		checkConnectivity = function(dst, src)
+			self.spots[#self.spots+1] = {x=dst[1], y=dst[2], check_connectivity=src}
+			print("********************************************")
+			print("********************************************")
+			print(dst[1], dst[2], src)
+			print("********************************************")
+			print("********************************************")
+			print("********************************************")
+		end,
 	}
 	setfenv(f, setmetatable(g, {__index=_G}))
 	local ret, err = f()
@@ -113,6 +123,8 @@ function _M:resolve(typ, c)
 end
 
 function _M:generate(lev, old_lev)
+	local spots = {}
+
 	for i = 1, self.gen_map.w do for j = 1, self.gen_map.h do
 		local c = self.gen_map[i][j]
 		self.map(i-1, j-1, Map.TERRAIN, self:resolve("grid", c))
@@ -160,11 +172,13 @@ function _M:generate(lev, old_lev)
 			self.level,
 			data
 		)
-		local ux, uy, dx, dy = generator:generate(lev, old_lev)
+		local ux, uy, dx, dy, subspots = generator:generate(lev, old_lev)
 
 		self.map:import(map, g.x, g.y)
 		map:close()
 
+		table.append(self.spots, subspots)
+
 		if g.define_up then self.gen_map.startx, self.gen_map.starty = ux + g.x, uy + g.y end
 		if g.define_down then self.gen_map.endx, self.gen_map.endy = dx + g.x, dy + g.y end
 	end
@@ -175,5 +189,5 @@ function _M:generate(lev, old_lev)
 	if self.gen_map.startx and self.gen_map.starty then
 		self.map.room_map[self.gen_map.endx][self.gen_map.endy].special = "exit"
 	end
-	return self.gen_map.startx, self.gen_map.starty, self.gen_map.endx, self.gen_map.endy
+	return self.gen_map.startx, self.gen_map.starty, self.gen_map.endx, self.gen_map.endy, self.spots
 end
diff --git a/game/engine/utils.lua b/game/engine/utils.lua
index 9650f98c892b61f4b31381f2bcc03eb96a41a8cf..2638384344e94ee04a91942685909344c1d27220 100644
--- a/game/engine/utils.lua
+++ b/game/engine/utils.lua
@@ -62,6 +62,10 @@ function table.mergeAdd(dst, src, deep)
 	end
 end
 
+function table.append(dst, src)
+	for i = 1, #src do dst[#dst+1] = src[i] end
+end
+
 function table.reverse(t)
 	local tt = {}
 	for i, e in ipairs(t) do tt[e] = i end
diff --git a/game/modules/tome/data/maps/zones/flooded-cave-last.lua b/game/modules/tome/data/maps/zones/flooded-cave-last.lua
index d0c0a29b0e49e9a64006dc4a554f42004952e210..9de699e264ec9492d974973d6ba146521d575d72 100644
--- a/game/modules/tome/data/maps/zones/flooded-cave-last.lua
+++ b/game/modules/tome/data/maps/zones/flooded-cave-last.lua
@@ -22,6 +22,9 @@ defineTile('.', "WATER_FLOOR")
 defineTile('#', "WATER_WALL")
 defineTile('s', "WATER_FLOOR", nil, "UKLLMSWWIK")
 
+startx = 0
+starty = 6
+
 return {
 [[##################################################]],
 [[##..............................................##]],
diff --git a/game/modules/tome/data/maps/zones/tower-amon-sul-last.lua b/game/modules/tome/data/maps/zones/tower-amon-sul-last.lua
index 75608c800f852c96012155391b61bfa6984e95d8..6f5f4899a5b598a3d86467062c11c95a8ebc568c 100644
--- a/game/modules/tome/data/maps/zones/tower-amon-sul-last.lua
+++ b/game/modules/tome/data/maps/zones/tower-amon-sul-last.lua
@@ -39,6 +39,8 @@ subGenerator{
 	define_up = true,
 }
 
+checkConnectivity({26,44}, "entrance")
+
 return {
 [[                                                  ]],
 [[                                                  ]],