diff --git a/contrib/mobile/Android/AndroidManifest.xml b/contrib/mobile/Android/AndroidManifest.xml
index a2fb0966bb707bb6aaefe92821786912520b284f..b036a829c47b6e944f6024c62617c59ca99851cc 100644
--- a/contrib/mobile/Android/AndroidManifest.xml
+++ b/contrib/mobile/Android/AndroidManifest.xml
@@ -15,7 +15,7 @@
                android:theme="@style/AppTheme"
                android:logo="@drawable/ic_launcher"
                android:allowBackup="true" >
-    <activity android:name=".SplashScreen"
+    <activity android:name="org.geuz.onelab.SplashScreen"
               android:label="@string/title_activity_main"
               android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
       <intent-filter>
@@ -38,15 +38,15 @@
         <data android:mimeType="application/zip" />
       </intent-filter>
     </activity>
-    <activity android:name=".MainActivity"
+    <activity android:name="org.geuz.onelab.MainActivity"
               android:label="@string/title_activity_main"/>
-    <activity android:name=".ModelList"
+    <activity android:name="org.geuz.onelab.ModelList"
               android:label="@string/title_activity_main"/>
-    <activity android:name=".AboutActivity"
+    <activity android:name="org.geuz.onelab.AboutActivity"
               android:label="@string/title_activity_about"/>
-    <activity android:name=".PostProcessingActivity"
+    <activity android:name="org.geuz.onelab.PostProcessingActivity"
               android:label="@string/title_activity_main"/>
-    <activity android:name=".OptionsActivity"
+    <activity android:name="org.geuz.onelab.OptionsActivity"
               android:label="@string/title_activity_options">
     </activity>
   </application>
diff --git a/contrib/mobile/CMakeLists.txt b/contrib/mobile/CMakeLists.txt
index 494066f230c6eb901409c619e292fdb4c1e65828..949b0983a870d2b4be439693945cc78ef023e460 100644
--- a/contrib/mobile/CMakeLists.txt
+++ b/contrib/mobile/CMakeLists.txt
@@ -33,12 +33,6 @@ foreach(SUBDIR ${BENCHMARKSDIR})
   endif()
 endforeach()
 
-macro(set_config_option VARNAME STRING)
-  set(${VARNAME} TRUE)
-  list(APPEND CONFIG_OPTIONS ${STRING})
-  message(STATUS "Found " ${STRING})
-endmacro(set_config_option)
-
 macro(append_src FILES)
   foreach(FILE ${FILES})
     list(APPEND LIST ${FILE})
@@ -47,7 +41,7 @@ macro(append_src FILES)
 endmacro(append_src)
 
 if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
-  # we need getdp framework
+  # GetDP framework
   find_path(GETDP_FRAMEWORK GetDP.framework)
   if(GETDP_FRAMEWORK)
     set(GETDP_FRAMEWORK ${GETDP_FRAMEWORK}/GetDP.framework)
@@ -55,7 +49,7 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
   else(GETDP_FRAMEWORK)
     message(SEND_ERROR "Could not find GetDP.framework")
   endif(GETDP_FRAMEWORK)
-  # we also need gmsh framework
+  # Gmsh framework
   find_path(GMSH_FRAMEWORK Gmsh.framework)
   if(GMSH_FRAMEWORK)
     set(GMSH_FRAMEWORK ${GMSH_FRAMEWORK}/Gmsh.framework)
@@ -63,7 +57,7 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
   else(GMSH_FRAMEWORK)
     message(SEND_ERROR "Could not find Gmsh.framework")
   endif(GMSH_FRAMEWORK)
-  # and we also need PETSc
+  # PETSc framework
   find_path(PETSC_FRAMEWORK petsc.framework)
   if(PETSC_FRAMEWORK)
     set(PETSC_FRAMEWORK ${PETSC_FRAMEWORK}/petsc.framework)
@@ -71,7 +65,7 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
   else(PETSC_FRAMEWORK)
     message(SEND_ERROR "Could not find petsc.framework")
   endif(PETSC_FRAMEWORK)
-  # and we also need SLEPc
+  # SLEPc framework
   find_path(SLEPC_FRAMEWORK slepc.framework)
   if(SLEPC_FRAMEWORK)
     set(SLEPC_FRAMEWORK ${SLEPC_FRAMEWORK}/slepc.framework)
@@ -122,7 +116,6 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
       endif()
     endforeach(IMG)
   endforeach(DIR)
-
   if("${APPNAME}" STREQUAL "BBEMG")
     add_custom_command(TARGET xcodeProject POST_BUILD COMMAND 
       sed -e \"s|Onelab|BBEMG|\" -i \"\" "${CMAKE_CURRENT_BINARY_DIR}/BBEMG/BBEMG.xcodeproj/project.pbxproj")
@@ -137,13 +130,11 @@ if(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
     add_custom_command(TARGET xcodeProject POST_BUILD COMMAND 
       sed -e \"s|onelab.info|www.bbemg.be|g\" -i \"\" "${CMAKE_CURRENT_BINARY_DIR}/BBEMG/BBEMG/AboutViewController.mm")
   endif("${APPNAME}" STREQUAL "BBEMG")
-  
   message(STATUS "")
   message(STATUS "${APPNAME} for iOS successfully configured:")
-  message(STATUS " * Run `make xcodeProject' to create the XCode project")
-  message(STATUS " * Then run `open ${APPNAME}/${APPNAME}.xcodeproj' to launch XCode")
+  message(STATUS " * Run 'make xcodeProject' to create the XCode project")
+  message(STATUS " * Then run 'open ${APPNAME}/${APPNAME}.xcodeproj' to launch XCode")
   message(STATUS "")
-
 endif(ENABLE_BUILD_IOS_EMULATOR OR ENABLE_BUILD_IOS)
 
 if(ENABLE_BUILD_ANDROID)
@@ -154,89 +145,93 @@ if(ENABLE_BUILD_ANDROID)
   append_src(drawString.cpp)
   append_src(drawGeom.cpp)
   append_src(drawMesh.cpp)
-  # user must specify the android-cmake toolchain
+  # android-cmake toolchain
   find_file(CMAKE_TOOLCHAIN_FILE "android.toolchain.cmake")
   if(NOT CMAKE_TOOLCHAIN_FILE)
-    message(SEND_ERROR "Cannot compile onelab for android without android-cmake")
+    message(SEND_ERROR "Could not find Android CMake toolchain")
   endif(NOT CMAKE_TOOLCHAIN_FILE)
-  # we need getdp lib
+  # GetDP lib
   find_library(GETDP_LIB Getdp PATH_SUFFIXES lib)
   find_path(GETDP_INC "GetDP.h" PATH_SUFFIXES include getdp include/getdp)
   if(GETDP_LIB AND GETDP_INC)
     list(APPEND EXTERNAL_LIBRARIES ${GETDP_LIB})
     list(APPEND EXTERNAL_INCLUDES ${GETDP_INC})
-    set_config_option(HAVE_GMSH "GetDP")
   else(GETDP_LIB AND GETDP_INC)
-    message(SEND_ERROR "Cannot compile onelab for Android without GetDP")
+    message(SEND_ERROR "Could not find GetDP library")
   endif(GETDP_LIB AND GETDP_INC)
-  # we also need gmsh lib
+  # Gmsh lib
   find_library(GMSH_LIB Gmsh PATH_SUFFIXES lib)
   find_path(GMSH_INC "Gmsh.h" PATH_SUFFIXES include gmsh include/gmsh)
   if(GMSH_LIB AND GMSH_INC)
     list(APPEND EXTERNAL_LIBRARIES ${GMSH_LIB})
     list(APPEND EXTERNAL_INCLUDES ${GMSH_INC})
-    set_config_option(HAVE_GMSH "Gmsh")
   else(GMSH_LIB AND GMSH_INC)
-    message(SEND_ERROR "Cannot compile onelab for Android without Gmsh")
+    message(SEND_ERROR "Could not find Gmsh library")
   endif(GMSH_LIB AND GMSH_INC)
-  # then we can make our library for Android
+  # Onelab android lib
   include_directories(${EXTERNAL_INCLUDES})
   set(CMAKE_BUILD_TYPE Release)
   add_definitions(-DBUILD_ANDROID)
   set(LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_CURRENT_BINARY_DIR})
   set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/libs/)
   add_library(androidOnelab SHARED ${ONELAB_SRC})
-  set( LIBRARY_DEPS GLESv1_CM log)
-  set_target_properties(androidOnelab PROPERTIES OUTPUT_NAME ${APPNAME})
-  target_link_libraries(androidOnelab ${LIBRARY_DEPS}  ${EXTERNAL_LIBRARIES})
+  set(LIBRARY_DEPS GLESv1_CM log)
+  set_target_properties(androidOnelab PROPERTIES OUTPUT_NAME Onelab)
+  target_link_libraries(androidOnelab ${LIBRARY_DEPS} ${EXTERNAL_LIBRARIES})
   find_library(PETSC_LIB petsc PATH_SUFFIXES lib)
+  if(NOT PETSC_LIB)
+    message(SEND_ERROR "Could not find PETSc library")
+  endif(NOT PETSC_LIB)
   find_library(SLEPC_LIB slepc PATH_SUFFIXES lib)
+  if(NOT SLEPC_LIB)
+    message(SEND_ERROR "Could not find SLEPc library")
+  endif(NOT SLEPC_LIB)
   find_library(BLAS_LIB f2cblas PATH_SUFFIXES lib)
+  if(NOT BLAS_LIB)
+    message(SEND_ERROR "Could not find BLAS library")
+  endif(NOT BLAS_LIB)
   find_library(LAPACK_LIB f2clapack PATH_SUFFIXES lib)
+  if(NOT LAPACK_LIB)
+    message(SEND_ERROR "Could not find LAPACK library")
+  endif(NOT LAPACK_LIB)
   set(ONELAB_LIB ${CMAKE_CURRENT_BINARY_DIR}/libs/libOnelab.so)
-  if(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
-    add_custom_target(androidProject
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/models/
-      COMMAND ${CMAKE_COMMAND} -E copy_directory  ${CMAKE_CURRENT_SOURCE_DIR}/Android/ ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/
-      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${GMSH_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${GETDP_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${ONELAB_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${PETSC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${SLEPC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${LAPACK_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-      COMMAND ${CMAKE_COMMAND} -E copy ${BLAS_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
-    )
-    add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove_directory
-                      ${CMAKE_CURRENT_BINARY_DIR}/models)
-    add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove
-                      ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/res/raw/models.zip)
-    foreach(DIR ${BENCHMARKS})
-      get_filename_component(DIRNAME ${DIR} NAME)
-      add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory
+  add_custom_target(androidProject
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/models/
+    COMMAND ${CMAKE_COMMAND} -E copy_directory  ${CMAKE_CURRENT_SOURCE_DIR}/Android/ ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${GMSH_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${GETDP_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${ONELAB_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${PETSC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${SLEPC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${LAPACK_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+    COMMAND ${CMAKE_COMMAND} -E copy ${BLAS_LIB} ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/libs/armeabi-v7a/
+  )
+  add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove_directory
+                    ${CMAKE_CURRENT_BINARY_DIR}/models)
+  add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove
+                    ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/res/raw/models.zip)
+  foreach(DIR ${BENCHMARKS})
+    get_filename_component(DIRNAME ${DIR} NAME)
+    add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory
                       ${DIR} ${CMAKE_CURRENT_BINARY_DIR}/models/${DIRNAME})
-      file(GLOB PNG ${DIR}/*.png)
-      foreach(IMG ${PNG})
-	get_filename_component(IMGNAME ${IMG} NAME)
-	if(NOT (IMGNAME MATCHES ".*_128.png"))
-          add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove
-                      "${CMAKE_CURRENT_BINARY_DIR}/models/${DIRNAME}/${IMGNAME}")
-	endif()
-      endforeach(IMG)
-    endforeach(DIR)
-    find_program(ZIP_COMMAND zip)
-    add_custom_command(TARGET androidProject POST_BUILD COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/models/ && zip -r
+    file(GLOB PNG ${DIR}/*.png)
+    foreach(IMG ${PNG})
+      get_filename_component(IMGNAME ${IMG} NAME)
+      if(NOT (IMGNAME MATCHES ".*_128.png"))
+        add_custom_command(TARGET androidProject POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove
+                           "${CMAKE_CURRENT_BINARY_DIR}/models/${DIRNAME}/${IMGNAME}")
+      endif()
+    endforeach(IMG)
+  endforeach(DIR)
+  find_program(ZIP_COMMAND zip)
+  add_custom_command(TARGET androidProject POST_BUILD COMMAND cd ${CMAKE_CURRENT_BINARY_DIR}/models/ && zip -r
                      ${CMAKE_CURRENT_BINARY_DIR}/${APPNAME}/res/raw/models.zip * --exclude=*.svn*)
-
   message(STATUS "")
   message(STATUS "ONELAB for Android successfully configured:")
-  message(STATUS " * Run `make androidProject' to create the project")
+  message(STATUS " * Run 'make androidProject' to create the project")
   message(STATUS " * Then update android project with 'android update project --name ${APPNAME} --path ${APPNAME} --target [id] --subprojects'")
-  message(STATUS " * Finally you can build the app with ant 'ant debug'")
+  message(STATUS " * Finally build the app with ant 'ant debug'")
   message(STATUS "")
- 
-  else(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
-    message(STATUS "Cannot make Android project without PETSc, SLEPc, BLAS, LAPACK or ONELAB libraries")
-  endif(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB)
 endif(ENABLE_BUILD_ANDROID)
diff --git a/contrib/mobile/utils/android_build.sh b/contrib/mobile/utils/android_build.sh
index aefeae693dbdfcf48d76b28ade53fa0ad36092b6..9f4a26977304f7b7b00aa30f9bf26276e462c6a8 100755
--- a/contrib/mobile/utils/android_build.sh
+++ b/contrib/mobile/utils/android_build.sh
@@ -62,7 +62,7 @@ if [ ! -d "$gmsh_svn/contrib/mobile/build_android_${appname}" ]; then
 fi
 cd $gmsh_svn/contrib/mobile/build_android_${appname}
 
-cmake $cmake_default \
+cmake $cmake_default -DAPPNAME:STRING=${appname} \
       -DCMAKE_INCLUDE_PATH="$getdp_svn/" \
       -DBLAS_LIB="$petsc_lib/libf2cblas.so" -DLAPACK_LIB="$petsc_lib/libf2clapack.so" \
       -DPETSC_LIB="$petsc_lib/libpetsc.so" -DSLEPC_LIB="$slepc_lib/libslepc.so" \
@@ -75,42 +75,23 @@ check
 make androidProject
 check
 
-# Potentially modify source tree for alternate branding
-cd Onelab
 if [ $# -eq 1 ] ; then
-  # change package name
-  mv src/org/geuz/onelab/ src/org/geuz/$appname
-  mkdir src/org/geuz/onelab
-  mv src/org/geuz/$appname/Gmsh.java src/org/geuz/onelab
-  find . -type f -name '*.java' -not -name 'Gmsh.java' -exec sed -i "s/org\.geuz\.onelab/org\.geuz\.$appname/g" {} \;
-  sed -i "s/org\.geuz\.onelab/org\.geuz\.$appname/g" AndroidManifest.xml
-  grep -r -m 1 'Gmsh' src | cut -d ':' -f 1 | xargs -n 1 sed -i "s/org\.geuz\.onelab;/org\.geuz\.$appname;\n\nimport org.geuz.onelab.Gmsh;/"
-  # change app name
-  sed -i "s/<string name=\"app_name\">Onelab<\/string>/<string name=\"app_name\">$appname<\/string>/" res/values/strings.xml
+  cd $appname; 
+  # change app name and icons
+  sed -e "s/package=\"org\.geuz\.onelab/package=\"org\.geuz\.$appname/" -i "" AndroidManifest.xml
+  sed -e "s/Onelab/$appname/" -i "" res/values/strings.xml
+  cp $HOME/tex/proposals/bbemg/icons/bbemg-logo-128x128.png res/drawable-hdpi/ic_launcher.png
+  cp $HOME/tex/proposals/bbemg/icons/bbemg-logo-64x64.png res/drawable-mdpi/ic_launcher.png
+  cp $HOME/tex/proposals/bbemg/icons/bbemg-logo-48x48.png res/drawable-ldpi/ic_launcher.png
+  $android_sdk/tools/android update project --name $appname --path . --target 1
+else
+  cd Onelab
+  $android_sdk/tools/android update project --name Onelab --path . --target 1
 fi
 
-# Onelab/Mobile package
-if [ ! -d "libs/armeabi-v7a/" ]; then mkdir -p libs/armeabi-v7a/; fi
-target=1
-while read line; do
-  read line # Name
-  target_name=$(echo $line | awk '{print $2}')
-  target_version=$(echo $line | awk '{print $3}')
-  read line # Type
-  read line # API level
-  target_api=$(echo $line | awk '{print $3}')
-  read line # Revision
-  read line # Skins
-  if [ $target_api -ge 14 ]; then
-    $android_sdk/tools/android update project --name Onelab --path . --target $target
-    check
-    ant release
-    check
-    break
-  fi
-  read line # HACK
-  target=$(($target+1))
-done < <($android_sdk/tools/android list target | grep -A 5 "id:")
+check
+ant release
+check
 
 # to sign the APK:
 # cp utils/ant.properties build_android_Onelab/Onelab/
diff --git a/contrib/mobile/utils/make_icon_ios.sh b/contrib/mobile/utils/make_icon_ios.sh
index 0be223a3ad5b717517796a5cf4cbebb77b7f31b6..ac4c0b7abbb86aee5f6dde71e9efe17a53c5e140 100755
--- a/contrib/mobile/utils/make_icon_ios.sh
+++ b/contrib/mobile/utils/make_icon_ios.sh
@@ -5,8 +5,8 @@ launch_source=../../../utils/icons/gmsh_128x128.png
 launch_source2=../../../utils/icons/gmsh_256x256.png
 bg=black
 
-#icon_source=$HOME/tex/proposals/bbemg/bbemg-logo-twitter-white.png
-#launch_source=$HOME/tex/proposals/bbemg/bbemg-logo-color-rgb.png
+#icon_source=$HOME/tex/proposals/bbemg/icons/bbemg-logo-white.png
+#launch_source=$HOME/tex/proposals/bbemg/icons/bbemg-logo-text.png
 #launch_source2=${launch_source}
 #bg=white