diff --git a/src/porting.h b/src/porting.h
index 0062c11f3f426b9820e59bfedc2329f1f7cd2db8..184e1ab54e1ab393f317ea48154e2611cc3f3a74 100644
--- a/src/porting.h
+++ b/src/porting.h
@@ -50,6 +50,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 	#define strtoull(x, y, z) _strtoui64(x, y, z)
 #else
 	#include <unistd.h>
+	#include <stdint.h> //for uintptr_t
 	
 	#define ALIGNOF(x) __alignof__(x)
 	#define sleep_ms(x) usleep(x*1000)
diff --git a/src/server.cpp b/src/server.cpp
index 70f71e3fbf5fb84294ce2fa47fa51364cbdf5342..d227474aa898a284acaa147f7a2f99155fa52501 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -4879,7 +4879,7 @@ v3f findSpawnPos(ServerMap &map)
 			continue;
 		}
 
-		nodepos = v3s16(nodepos2d.X, groundheight+1, nodepos2d.Y);
+		nodepos = v3s16(nodepos2d.X, groundheight-2, nodepos2d.Y);
 		bool is_good = false;
 		s32 air_count = 0;
 		for(s32 i=0; i<10; i++){