diff --git a/contrib/hstore/expected/hstore.out b/contrib/hstore/expected/hstore.out
index 1836c9acf3..26815cbc7f 100644
--- a/contrib/hstore/expected/hstore.out
+++ b/contrib/hstore/expected/hstore.out
@@ -243,6 +243,14 @@ select '	'::hstore;
  
 (1 row)
 
+-- UTF-8 Mac OS X en_US.UTF-8 locale bug: isspace(0x85) returns true
+-- \u0105 encodes as 0xc4 0x85 in UTF-8; the 0x85 was interpreted as whitespace
+select E'key\u0105=>value'::hstore;
+     hstore      
+-----------------
+ "keyą"=>"value"
+(1 row)
+
 -- invalid input
 select '  =>null'::hstore;
 ERROR:  syntax error in hstore, near "=" at position 2
diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c
index cec7df71a2..999ddad76d 100644
--- a/contrib/hstore/hstore_io.c
+++ b/contrib/hstore/hstore_io.c
@@ -13,6 +13,7 @@
 #include "lib/stringinfo.h"
 #include "libpq/pqformat.h"
 #include "nodes/miscnodes.h"
+#include "parser/scansup.h"
 #include "utils/builtins.h"
 #include "utils/json.h"
 #include "utils/jsonb.h"
@@ -118,7 +119,7 @@ get_val(HSParser *state, bool ignoreeq, bool *escaped)
 			{
 				st = GV_WAITESCIN;
 			}
-			else if (!isspace((unsigned char) *(state->ptr)))
+			else if (!scanner_isspace((unsigned char) *(state->ptr)))
 			{
 				*(state->cur) = *(state->ptr);
 				state->cur++;
@@ -141,7 +142,7 @@ get_val(HSParser *state, bool ignoreeq, bool *escaped)
 				state->ptr--;
 				return true;
 			}
-			else if (isspace((unsigned char) *(state->ptr)))
+			else if (scanner_isspace((unsigned char) *(state->ptr)))
 			{
 				return true;
 			}
@@ -255,7 +256,7 @@ parse_hstore(HSParser *state)
 			{
 				PRSEOF;
 			}
-			else if (!isspace((unsigned char) *(state->ptr)))
+			else if (!scanner_isspace((unsigned char) *(state->ptr)))
 			{
 				PRSSYNTAXERROR;
 			}
@@ -309,7 +310,7 @@ parse_hstore(HSParser *state)
 			{
 				return true;
 			}
-			else if (!isspace((unsigned char) *(state->ptr)))
+			else if (!scanner_isspace((unsigned char) *(state->ptr)))
 			{
 				PRSSYNTAXERROR;
 			}
diff --git a/contrib/hstore/sql/hstore.sql b/contrib/hstore/sql/hstore.sql
index efef91292a..36c7422018 100644
--- a/contrib/hstore/sql/hstore.sql
+++ b/contrib/hstore/sql/hstore.sql
@@ -53,6 +53,10 @@ select e'\\"a=>q"w'::hstore;
 select ''::hstore;
 select '	'::hstore;
 
+-- UTF-8 Mac OS X en_US.UTF-8 locale bug: isspace(0x85) returns true
+-- \u0105 encodes as 0xc4 0x85 in UTF-8; the 0x85 was interpreted as whitespace
+select E'key\u0105=>value'::hstore;
+
 -- invalid input
 select '  =>null'::hstore;
 select 'aa=>"'::hstore;
