diff --git a/README.md b/README.md
index 350e43f802..aea54809f7 100755
--- a/README.md
+++ b/README.md
@@ -65,6 +65,7 @@ cd simple-rtmp-server/trunk
[Usage: How to transode RTMP stream by SRS?](https://github.com/winlinvip/simple-rtmp-server/wiki/SampleFFMPEG)
[Usage: How to forward stream to other server?](https://github.com/winlinvip/simple-rtmp-server/wiki/SampleForward)
[Usage: How to deploy low lantency application?](https://github.com/winlinvip/simple-rtmp-server/wiki/SampleRealtime)
+[Usage: How to deploy srs on ARM?](https://github.com/winlinvip/simple-rtmp-server/wiki/SampleARM)
[Usage: How to show the demo of SRS?](https://github.com/winlinvip/simple-rtmp-server/wiki/SampleDemo)
[Usage: Who is using SRS?](https://github.com/winlinvip/simple-rtmp-server/wiki/Sample)
diff --git a/trunk/3rdparty/patches/1.st.arm.patch b/trunk/3rdparty/patches/1.st.arm.patch
new file mode 100644
index 0000000000..1e18259405
--- /dev/null
+++ b/trunk/3rdparty/patches/1.st.arm.patch
@@ -0,0 +1,21 @@
+Only in .: 1.st.arm.patch
+diff -r -c ./md.h ../st-1.9-patch-arm/md.h
+*** ./md.h 2009-10-02 02:46:43.000000000 +0800
+--- ../st-1.9-patch-arm/md.h 2014-03-16 20:49:03.845344804 +0800
+***************
+*** 422,428 ****
+ #define MD_STACK_GROWS_DOWN
+
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+! #define MD_GET_SP(_t) (_t)->context[0].__jmpbuf[20]
+ #else
+ #error "ARM/Linux pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+--- 422,428 ----
+ #define MD_STACK_GROWS_DOWN
+
+ #if defined(__GLIBC__) && __GLIBC__ >= 2
+! #define MD_GET_SP(_t) (_t)->context[0].__jmpbuf[8]
+ #else
+ #error "ARM/Linux pre-glibc2 not supported yet"
+ #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
diff --git a/trunk/auto/depends.sh b/trunk/auto/depends.sh
index 9b838b0a38..55966f2794 100755
--- a/trunk/auto/depends.sh
+++ b/trunk/auto/depends.sh
@@ -209,6 +209,7 @@ if [ $SRS_ARM_UBUNTU12 = YES ]; then
(
rm -rf ${SRS_OBJS}/st-1.9 && cd ${SRS_OBJS} &&
unzip -q ../3rdparty/st-1.9.zip && cd st-1.9 &&
+ patch -p0 < ../../3rdparty/patches/1.st.arm.patch &&
make CC=${SrsArmCC} AR=${SrsArmAR} LD=${SrsArmLD} RANDLIB=${SrsArmRANDLIB} linux-debug &&
cd .. && rm -f st && ln -sf st-1.9/obj st &&
cd .. && touch ${SRS_OBJS}/_flag.st.arm.tmp
diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp
index fa2a7d8120..5bd188bfec 100644
--- a/trunk/src/core/srs_core.hpp
+++ b/trunk/src/core/srs_core.hpp
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR "0"
#define VERSION_MINOR "9"
-#define VERSION_REVISION "17"
+#define VERSION_REVISION "18"
#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
// server info.
#define RTMP_SIG_SRS_KEY "srs"