diff --git a/build/tools/package-release.sh b/build/tools/package-release.sh
index ebd5d1e..964ceea 100755
--- a/build/tools/package-release.sh
+++ b/build/tools/package-release.sh
@@ -486,6 +486,8 @@
             rm -rf $DSTDIR64/toolchains/$TC/prebuilt/${SYSTEM}_64/sysroot
             rm -rf $DSTDIR64/toolchains/$TC/prebuilt/${SYSTEM}-x86_64/sysroot
         done
+        echo "Remove ld.mcld deployed/packaged earlier by accident "
+        find $DSTDIR/toolchains $DSTDIR64/toolchains  -name "*ld.mcld*" -exec rm -f {} \;
 
         # Unpack llvm and clang
         for LLVM_VERSION in $LLVM_VERSION_LIST; do
diff --git a/tests/device/stat/jni/Android.mk b/tests/device/stat/jni/Android.mk
new file mode 100644
index 0000000..1115e4d
--- /dev/null
+++ b/tests/device/stat/jni/Android.mk
@@ -0,0 +1,6 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := stat
+LOCAL_SRC_FILES := stat.c
+include $(BUILD_EXECUTABLE)
diff --git a/tests/device/stat/jni/Application.mk b/tests/device/stat/jni/Application.mk
new file mode 100644
index 0000000..a252a72
--- /dev/null
+++ b/tests/device/stat/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := all
diff --git a/tests/device/stat/jni/stat.c b/tests/device/stat/jni/stat.c
new file mode 100644
index 0000000..0d32712
--- /dev/null
+++ b/tests/device/stat/jni/stat.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+
+int main()
+{
+    int i;
+    struct stat sb;
+    char *paths[] = {
+        "/system", "/dev/null", "doesn't exit", "stat"
+    };
+
+    for(i=0; i<sizeof(paths)/sizeof(paths[0]); i++)
+    {
+        if (stat(paths[i], &sb) != 0)
+            printf("Can't stat path %s\n", paths[i]);
+        else
+        {
+            printf("%14s %6lld: %s%s%s %s %s %s %s\n", paths[i], sb.st_size,
+                   ((sb.st_mode & S_IRUSR)? "r" : " "),
+                   ((sb.st_mode & S_IWUSR)? "w" : " "),
+                   ((sb.st_mode & S_IXUSR)? "x" : " "),
+                   (((sb.st_mode & S_IFMT) == S_IFREG)? "REG" : "   "),
+                   (((sb.st_mode & S_IFMT) == S_IFDIR)? "DIR" : "   "),
+                   (((sb.st_mode & S_IFMT) == S_IFLNK)? "LNK" : "   "),
+                   (((sb.st_mode & S_IFMT) == S_IFCHR)? "CHR" : "   "));
+        }
+    }
+   return 0;
+}
diff --git a/tests/run-tests-all.sh b/tests/run-tests-all.sh
index 282629f..8aa655f 100755
--- a/tests/run-tests-all.sh
+++ b/tests/run-tests-all.sh
@@ -27,7 +27,7 @@
             x86)
                     DEVICE_x86=$DEVICE
                     ;;
-            mips)
+            mips*)
                     DEVICE_mips=$DEVICE
                     ;;
             *)
