diff --git a/.gitmodules b/.gitmodules
index 9d8d438..c904635 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,10 +1,13 @@
 [submodule "app/src/main/jni/cryptopp"]
     path = app/src/main/jni/cryptopp
-    url = http://github.com/cawka/cryptopp
+    url = https://github.com/cawka/cryptopp
     branch = android
+[submodule "app/src/main/jni/sqlite3"]
+    path = app/src/main/jni/sqlite3
+    url = https://github.com/cawka/sqlite3-android.git
 [submodule "app/src/main/jni/ndn-cxx"]
     path = app/src/main/jni/ndn-cxx
-    url = ../ndn-cxx
+    url = https://github.com/named-data/ndn-cxx
 [submodule "app/src/main/jni/NFD"]
     path = app/src/main/jni/NFD
-    url = ../NFD
+    url = https://github.com/named-data/NFD
diff --git a/.jenkins.d/10-get-ndk.sh b/.jenkins.d/10-get-ndk.sh
index b6ed35d..5729869 100755
--- a/.jenkins.d/10-get-ndk.sh
+++ b/.jenkins.d/10-get-ndk.sh
@@ -3,7 +3,7 @@
 set -x
 
 URL=https://www.crystax.net/download/
-NDK=crystax-ndk-10.2.1
+NDK=crystax-ndk-10.1.0
 
 NDK_FILE="$NDK-linux-x86_64.tar.bz2"
 
diff --git a/.vagrant/Vagrantfile b/.vagrant/Vagrantfile
index f2d8374..58a6b30 100644
--- a/.vagrant/Vagrantfile
+++ b/.vagrant/Vagrantfile
@@ -10,9 +10,10 @@
 sudo dpkg --add-architecture i386;
 sudo apt-get update -qq; sudo apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
 
-wget -q https://www.crystax.net/download/crystax-ndk-10.2.1-linux-x86_64.tar.bz2
-tar jxf crystax-ndk-10.2.1-linux-x86_64.tar.bz2
-rm crystax-ndk-10.2.1-linux-x86_64.tar.bz2
+wget -q https://www.crystax.net/download/crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+tar jxf crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+rm crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \\;
 
 wget -q http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
 tar zxf android-sdk_r24.0.2-linux.tgz
@@ -29,12 +30,12 @@
 echo "y" | android update sdk --filter "android-19" --no-ui --all --force
 
 wget -q https://services.gradle.org/distributions/gradle-2.6-bin.zip
-unzip gradle-2.6.bin.zip
+unzip gradle-2.6-bin.zip
 rm gradle-2.6-bin.zip
 export PATH=$PATH:`pwd`/gradle-2.6/bin
 
 echo sdk.dir=`pwd`/android-sdk-linux > local.properties
-echo ndk.dir=`pwd`/crystax-ndk-10.2.1 >> local.properties
+echo ndk.dir=`pwd`/crystax-ndk-10.1.0 >> local.properties
 SCRIPT
 
 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
diff --git a/README.md b/README.md
index 782b9b2..fbd99b4 100644
--- a/README.md
+++ b/README.md
@@ -8,13 +8,18 @@
 To compile code, the following is necessary
 
 - Appropriate [Android SDK](http://developer.android.com/sdk/index.html)
-- [CrystalX Android NDK](https://www.crystax.net/en/download) version 10.2.1 or later
+- [CrystalX Android NDK](https://www.crystax.net/en/download) version 10.1.0 or later
+
+If version 10.1.0 is used, then the following patch needs to be applied:
+
+    find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \;
 
 Example script for Ubuntu 14.04 to get all dependencies, download SDK and NDK:
 
     sudo apt-get install -y build-essential git openjdk-7-jdk unzip
-    wget -q https://www.crystax.net/download/crystax-ndk-10.2.1-linux-x86_64.tar.bz2
-    tar jxf crystax-ndk-10.2.1-linux-x86_64.tar.bz2
+    wget -q https://www.crystax.net/download/crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+    tar jxf crystax-ndk-10.1.0-linux-x86_64.tar.bz2
+    find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \;
 
     wget -q http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
     tar zxf android-sdk_r24.0.2-linux.tgz
@@ -43,7 +48,7 @@
 
     git clone --recursive http://gerrit.named-data.net/NFD-android
     echo sdk.dir=`pwd`/android-sdk-linux > NFD-android/local.properties
-    echo ndk.dir=`pwd`/crystax-ndk-10.2.1 >> NFD-android/local.properties
+    echo ndk.dir=`pwd`/crystax-ndk-10.1.0 >> NFD-android/local.properties
     cd NFD-android
 
     ../gradle/gradle-2.6/bin/gradle assembleRelease
diff --git a/app/build.gradle b/app/build.gradle
index c55ce1e..41a6db8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -133,18 +133,21 @@
     compile 'com.android.support:appcompat-v7:21.0.3'
     compile 'com.android.support:support-v4:21.0.3'
 
-    compile 'net.named-data:jndn:0.4'
-    compile 'net.named-data.jndn-xx:jndn-xx-util:0.0.1'
-
     compile('com.intel.jndn.utils:jndn-utils:0.9.7') {
-      force = true
-      exclude group: 'com.intel.jndn.mock'
+      exclude group: 'com.intel.jndn.mock', module: 'jndn-mock'
+      exclude group: 'net.named-data', module: 'jndn'
     }
-    compile('com.intel.jndn.management:jndn-management:0.9.7') {
-      force = true
-      exclude group: 'com.intel.jndn.jndn-utils'
-    }
-    compile 'com.google.protobuf:protobuf-java:2.6.1'
 
+    compile('com.intel.jndn.management:jndn-management:0.9.7') {
+      exclude group: 'net.named-data', module: 'jndn'
+      exclude group: 'com.intel.jndn.utils', module: 'jndn-utils'
+      exclude group: 'com.intel.jndn.mock', module: 'jndn-mock'
+    }
+
+    // compile('net.named-data:jndn-android:0.7') {
+    compile('net.named-data:jndn:0.4') {
+      exclude group: 'org.xerial'
+    }
+    compile 'net.named-data.jndn-xx:jndn-xx-util:0.0.1'
     compile 'joda-time:joda-time:2.7'
 }
diff --git a/app/src/main/jni/ndn-cxx.mk b/app/src/main/jni/ndn-cxx.mk
index fc758f6..8f6ecea 100644
--- a/app/src/main/jni/ndn-cxx.mk
+++ b/app/src/main/jni/ndn-cxx.mk
@@ -5,7 +5,7 @@
 LOCAL_MODULE := ndn-cxx
 NDN_CXX_BOOST_LIBS = system filesystem date_time iostreams program_options chrono random
 LOCAL_SHARED_LIBRARIES := cryptopp $(addsuffix _shared,$(addprefix boost_,$(NDN_CXX_BOOST_LIBS)))
-LOCAL_STATIC_LIBRARIES := sqlite3_static boost_regex_static
+LOCAL_STATIC_LIBRARIES := sqlite3 boost_regex_static
 NDN_CXX_SRC_FILES := \
     data.cpp \
     encoding/block.cpp \
@@ -115,6 +115,6 @@
 include $(BUILD_SHARED_LIBRARY)
 
 include $(LOCAL_PATH_SAVED)/cryptopp/Android.mk
+include $(LOCAL_PATH_SAVED)/sqlite3/Android.mk
 
 $(call import-module,boost/1.57.0)
-$(call import-module,sqlite/3)
diff --git a/app/src/main/jni/nfd-wrapper.cpp b/app/src/main/jni/nfd-wrapper.cpp
index a5544a8..d88413e 100644
--- a/app/src/main/jni/nfd-wrapper.cpp
+++ b/app/src/main/jni/nfd-wrapper.cpp
@@ -77,9 +77,10 @@
       "  strategy_choice\n"
       "  {\n"
       "    /               /localhost/nfd/strategy/best-route\n"
-      "    /localhost      /localhost/nfd/strategy/broadcast\n"
+      "    /localhost      /localhost/nfd/strategy/multicast\n"
       "    /localhost/nfd  /localhost/nfd/strategy/best-route\n"
-      "    /ndn/broadcast  /localhost/nfd/strategy/broadcast\n"
+      "    /ndn/broadcast  /localhost/nfd/strategy/multicast\n"
+      "    /ndn/multicast  /localhost/nfd/strategy/multicast\n"
       "  }\n"
       "}\n"
       "\n"
@@ -164,6 +165,7 @@
       std::unique_lock<std::mutex> lock(m_pointerMutex);
       m_io = &getGlobalIoService();
     }
+
     m_io->run();
     m_io->reset();
   }
@@ -249,6 +251,9 @@
     NFD_LOG_INFO("Use [" << nfd::g_params["homePath"] << "] as a security storage");
 
     nfd::g_thread = boost::thread([] {
+        nfd::scheduler::resetGlobalScheduler();
+        nfd::resetGlobalIoService();
+
         NFD_LOG_INFO("Starting NFD...");
         try {
           nfd::g_runner.reset(new nfd::Runner());
diff --git a/app/src/main/jni/sqlite3 b/app/src/main/jni/sqlite3
new file mode 160000
index 0000000..b2b9ab5
--- /dev/null
+++ b/app/src/main/jni/sqlite3
@@ -0,0 +1 @@
+Subproject commit b2b9ab529987de81585ce6bf7bcfab91917f37af
