diff --git a/hardware/arduino/sam/cores/arduino/WString.h b/hardware/arduino/sam/cores/arduino/WString.h
index b7d3852ba..86cd4c64a 100644
--- a/hardware/arduino/sam/cores/arduino/WString.h
+++ b/hardware/arduino/sam/cores/arduino/WString.h
@@ -161,8 +161,10 @@ public:
 	void toCharArray(char *buf, unsigned int bufsize, unsigned int index=0) const
 		{getBytes((unsigned char *)buf, bufsize, index);}
 	const char * c_str() const { return buffer; }
-	const char* begin() { return c_str(); }
-	const char* end() { return c_str() + length(); }
+ 	char* begin() { return buffer; }
+ 	char* end() { return buffer + length(); }
+ 	const char* begin() const { return c_str(); }
+ 	const char* end() const { return c_str() + length(); }
 
 	// search
 	int indexOf( char ch ) const;