diff --git a/indra/newview/llagentui.cpp b/indra/newview/llagentui.cpp
index b9ec304b7eb8eb6996b68bdc1bfe630a8b5d825a..125f911e0d3aa219f6db3246b6f23e3ea0c0607e 100755
--- a/indra/newview/llagentui.cpp
+++ b/indra/newview/llagentui.cpp
@@ -130,6 +130,11 @@ BOOL LLAgentUI::buildLocationString(std::string& str, ELocationFormat fmt,const
 				sim_access_string.empty() ? "" : " - ",
 				sim_access_string.c_str());
 			break;
+		case LOCATION_FORMAT_NORMAL_COORDS:
+			buffer = llformat("%s (%d, %d, %d)",
+				region_name.c_str(),
+				pos_x, pos_y, pos_z);
+			break;
 		}
 	}
 	else
@@ -164,6 +169,11 @@ BOOL LLAgentUI::buildLocationString(std::string& str, ELocationFormat fmt,const
 				sim_access_string.empty() ? "" : " - ",
 				sim_access_string.c_str());
 			break;
+		case LOCATION_FORMAT_NORMAL_COORDS:
+			buffer = llformat("%s (%d, %d, %d)",
+				parcel_name.c_str(),
+				pos_x, pos_y, pos_z);
+			break;
 		}
 	}
 	str = buffer;
diff --git a/indra/newview/llagentui.h b/indra/newview/llagentui.h
index dda5dc1fd11560afa2e9cbd56a83309d2371043d..bb48dad14c777545d2ffffb5ac2e60c6ff9f5d96 100755
--- a/indra/newview/llagentui.h
+++ b/indra/newview/llagentui.h
@@ -35,6 +35,7 @@ class LLAgentUI
 	enum ELocationFormat
 	{
 		LOCATION_FORMAT_NORMAL,			// Parcel
+		LOCATION_FORMAT_NORMAL_COORDS,	// Parcel (x, y, z)
 		LOCATION_FORMAT_LANDMARK,		// Parcel, Region
 		LOCATION_FORMAT_NO_MATURITY,	// Parcel, Region (x, y, z)
 		LOCATION_FORMAT_NO_COORDS,		// Parcel, Region - Maturity
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index bd5a37876fd1743ecbc4302ae20facaaae111a4e..471db8d8fcb3f66a8d678089be1cd7d9e5109e08 100755
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -5993,37 +5993,8 @@ void handle_facebook_checkin()
 	std::string slurl_string = slurl.getSLURLString();
 
 	std::string region_name = gAgent.getRegion()->getName();
-
-	//Get the parcel name
-	LLViewerParcelMgr * parcel = LLViewerParcelMgr::getInstance();
-	std::string parcel_title = parcel->getAgentParcelName();
-
-	//Create the location
-	LLVector3 agent_pos_region = gAgent.getPositionAgent();
-	S32 pos_x = S32(agent_pos_region.mV[VX]);
-	S32 pos_y = S32(agent_pos_region.mV[VY]);
-	S32 pos_z = S32(agent_pos_region.mV[VZ]);
-
-	// Round the numbers based on the velocity
-	F32 velocity_mag_sq = gAgent.getVelocity().magVecSquared();
-
-	const F32 FLY_CUTOFF = 6.f;		// meters/sec
-	const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
-	const F32 WALK_CUTOFF = 1.5f;	// meters/sec
-	const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
-
-	if (velocity_mag_sq > FLY_CUTOFF_SQ)
-	{
-		pos_x -= pos_x % 4;
-		pos_y -= pos_y % 4;
-	}
-	else if (velocity_mag_sq > WALK_CUTOFF_SQ)
-	{
-		pos_x -= pos_x % 2;
-		pos_y -= pos_y % 2;
-	}
-
-	std::string description = llformat("%s (%d, %d, %d)", parcel_title.c_str(), pos_x, pos_y, pos_z);
+	std::string description;
+	LLAgentUI::buildLocationString(description, LLAgentUI::LOCATION_FORMAT_NORMAL_COORDS, gAgent.getPositionAgent());
 
 	LLFacebookConnect::instance().postCheckin(slurl_string, region_name, description, "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQDL4jdC_vCh0ow-QCXZjN-WNojEXWiz0APEa6Qhpl8cxawjkoC7w", "");
 }