diff --git a/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java b/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java
index 8868ab9f65fe147e603eb8f1fd5e7fcd6277a849..201be57e514d91eef2e25fa039d2a90d305650b3 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/GLESRender.java
@@ -37,6 +37,9 @@ public class GLESRender implements Renderer{
 	public void resetModelPosition() {
 		mGModel.resetPosition();
 	}
+	public void viewX() { mGModel.viewX();}
+	public void viewY() { mGModel.viewY();}
+	public void viewZ() { mGModel.viewZ();}
 	
 	// OpenGL ES methods
 	public void onDrawFrame(GL10 gl) {
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java
index baff69f3f97bc6e9111612a16c7fff38be1f2d7b..3d1ba9c3372453eb9e77a9e0734b96a038f2c9a7 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java
@@ -19,6 +19,7 @@ public class Gmsh {
 	private native void drawView(long ptr); // Called each time the GLView request a render
 	private native void eventHandler(long ptr, int event, float x, float y);
 	private native void setShow(long ptr, String what, boolean show); // select what to show / hide
+	private native boolean isShow(long ptr, String what);
 	private native long getOnelabInstance(); // return the singleton of the onelab server
 	public native String[] getParams(); // return the parameters for onelab
 	public native int setParam(String type, String name, String value); // change a parameters
@@ -65,13 +66,16 @@ public class Gmsh {
 	{
 		this.eventHandler(ptr, 3, x, y);
 	}
+	public void viewX() { this.eventHandler(ptr, 5, 0, 0);}
+	public void viewY() { this.eventHandler(ptr, 6, 0, 0);}
+	public void viewZ() { this.eventHandler(ptr, 7, 0, 0);}
 	public void endEvent(float x, float y)
 	{
 		this.eventHandler(ptr, 4, x, y);
 	}
 	public void resetPosition()
 	{
-		this.eventHandler(ptr, 5, 0, 0);
+		this.eventHandler(ptr, 10, 0, 0);
 	}
 	public void showGeom(boolean show)
 	{
@@ -81,6 +85,14 @@ public class Gmsh {
 	{
 		this.setShow(ptr, "mesh", show);
 	}
+	public boolean showMesh() 
+	{
+		return this.isShow(ptr, "mesh");
+	}
+	public boolean showGeom() 
+	{
+		return this.isShow(ptr, "geom");
+	}
 	public long getOnelab() {
 		return this.onelab;
 	}
diff --git a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
index 65f424248a6ccb37181787f1efbb178a3f1b0115..c5ddabe6812dafe7ba0ee64227a8b9b462190c24 100644
--- a/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
+++ b/contrib/mobile/Android/src/org/geuz/onelab/MainActivity.java
@@ -157,21 +157,19 @@ public class MainActivity extends Activity {
 				.setPositiveButton("Ok", null)
 				.show();
     	}
-    	/*else if(item.getTitle().equals(getString(R.string.menu_view_x))){
-    		renderer.rotate(0, 0, 0);
-    		renderer.rotate(90, 0, 0);
+    	else if(item.getTitle().equals(getString(R.string.menu_view_x))){
+    		renderer.viewX();
     		glView.requestRender();
     	}
 		else if(item.getTitle().equals(getString(R.string.menu_view_y))){
-			renderer.rotate(0, 0, 0);
-			renderer.rotate(0, 90, 0);
+			renderer.viewY();
 			glView.requestRender();
 		}
 		else if(item.getTitle().equals(getString(R.string.menu_view_z))){
-			renderer.rotate(0, 0, 0);
+			renderer.viewZ();
 			glView.requestRender();
 		}
-		else if(item.getTitle().equals(getString(R.string.menu_view_scale))){
+		/*else if(item.getTitle().equals(getString(R.string.menu_view_scale))){
 			glView.resetScale();
 			glView.requestRender();
 		}
@@ -449,7 +447,7 @@ public class MainActivity extends Activity {
     	onelabBtns.addView(run, lp);
     	CheckBox showMesh = new CheckBox(ctx);
     	showMesh.setText("Show the mesh");
-    	showMesh.setChecked(false);
+    	showMesh.setChecked(gmsh.showMesh());
     	showMesh.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 			
 			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -459,7 +457,7 @@ public class MainActivity extends Activity {
 		});
     	CheckBox showGeom = new CheckBox(ctx);
     	showGeom.setText("Show the geometry");
-    	showGeom.setChecked(true);
+    	showGeom.setChecked(gmsh.showGeom());
     	showGeom.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
 			
 			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
diff --git a/contrib/mobile/androidGModel.cpp b/contrib/mobile/androidGModel.cpp
index cc94026dc7aa5f5d13215b3d6d5718763b7299d3..2ccfac331a8a95d419a8df625ba667e779aea0e7 100644
--- a/contrib/mobile/androidGModel.cpp
+++ b/contrib/mobile/androidGModel.cpp
@@ -158,6 +158,14 @@ JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setShow
 	else if(strcmp(what, "geom") == 0)
 		((drawContext *)jptr)->showGeom(value);
 }
+JNIEXPORT jboolean JNICALL Java_org_geuz_onelab_Gmsh_isShow
+  (JNIEnv *env, jobject obj, jlong jptr, jstring jwhat)
+{
+	const char*  what = env->GetStringUTFChars(jwhat, NULL);
+	if(strcmp(what, "mesh") == 0) return ((drawContext *)jptr)->isShowedMesh();
+	else if(strcmp(what, "geom") == 0) return ((drawContext *)jptr)->isShowedGeom();
+	else return false;
+}
 JNIEXPORT jlong JNICALL Java_org_geuz_onelab_Gmsh_getOnelabInstance
   (JNIEnv *env , jobject obj)
 {
diff --git a/contrib/mobile/androidGModel.h b/contrib/mobile/androidGModel.h
index 9ae8acdf33eeda61f4794b196cd17ad01979845e..9c6150e398a653f410ab176ceb8a6ce13cc4ec1c 100644
--- a/contrib/mobile/androidGModel.h
+++ b/contrib/mobile/androidGModel.h
@@ -57,6 +57,14 @@ JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_eventHandler
 JNIEXPORT void JNICALL Java_org_geuz_onelab_Gmsh_setShow
   (JNIEnv *, jobject, jlong, jstring, jboolean);
 
+/*
+ * Class:     org_geuz_onelab_Gmsh
+ * Method:    isShow
+ * Signature: (JLjava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_org_geuz_onelab_Gmsh_isShow
+  (JNIEnv *, jobject, jlong, jstring);
+
 /*
  * Class:     org_geuz_onelab_Gmsh
  * Method:    getOnelabInstance
diff --git a/contrib/mobile/drawContext.cpp b/contrib/mobile/drawContext.cpp
index e10b22d1f00fd8b5e341a61cd9cbce50a18e0a00..193117e21d276139bed12bd3c2b93440ef39ed54 100644
--- a/contrib/mobile/drawContext.cpp
+++ b/contrib/mobile/drawContext.cpp
@@ -122,17 +122,17 @@ void drawContext::eventHandler(int event, float x, float y)
 		case 4: // release the finger(s)
 			// Do nothink ?
 			break;
-        case 5: // X view
-            axis_to_quat(xx, M_PI/2, q);
-            setQuaternion(q[0], q[1], q[2], q[3]);
-            break;
-        case 6: // Y view
-            axis_to_quat(yy, M_PI/2, q);
-            setQuaternion(q[0], q[1], q[2], q[3]);
-            break;
-        case 7: // Z view
-            setQuaternion(0., 0., 0., 1.);
-            break;
+		case 5: // X view
+			axis_to_quat(xx, M_PI/2, q);
+			setQuaternion(q[0], q[1], q[2], q[3]);
+			break;
+		case 6: // Y view
+			axis_to_quat(yy, M_PI/2, q);
+			setQuaternion(q[0], q[1], q[2], q[3]);
+			break;
+		case 7: // Z view
+			setQuaternion(0., 0., 0., 1.);
+			break;
 		default: // all other reset the position
 			setQuaternion(0., 0., 0., 1.);
 			for(int i = 0; i < 3; i++){
diff --git a/contrib/mobile/drawContext.h b/contrib/mobile/drawContext.h
index d3b860d4833ab789e855b5441bb5af45ce872ef6..9845b0d42ae869b9b0e34ea2af86dfcb36319cb8 100644
--- a/contrib/mobile/drawContext.h
+++ b/contrib/mobile/drawContext.h
@@ -61,8 +61,8 @@ public:
 	void showGeom(bool show=true) {CTX::instance()->geom.draw = show;}
 	void showMesh(bool show=true) {CTX::instance()->mesh.draw = show;}
 	void fillMesh(bool show=true) {_fillMesh = show;}
-    bool isShowedMesh(){return CTX::instance()->mesh.draw;}
-    bool isShowedGeom(){return CTX::instance()->geom.draw;}
+	bool isShowedMesh(){return CTX::instance()->mesh.draw;}
+	bool isShowedGeom(){return CTX::instance()->geom.draw;}
 };
 
 #endif