diff --git a/contrib/mobile/drawContext.cpp b/contrib/mobile/drawContext.cpp
index 193117e21d276139bed12bd3c2b93440ef39ed54..c3424e0fc012f1d5ada77386bad35fd1f2f6f906 100644
--- a/contrib/mobile/drawContext.cpp
+++ b/contrib/mobile/drawContext.cpp
@@ -666,7 +666,7 @@ int onelab_cb(std::string action)
 	} while(action == "compute" && (onelabUtils::incrementLoop("3") || onelabUtils::incrementLoop("2") || onelabUtils::incrementLoop("1")));
     
 	locked = false;
-    
+
 	return redraw;
 }
 
diff --git a/contrib/mobile/iOS/Onelab/ModelViewController.h b/contrib/mobile/iOS/Onelab/ModelViewController.h
index 2ddd46edbb3e1efebddba562dd4c16938d6ae07f..3b9c7d28d0ef5a9f0e028b058ee3207f4ac018bb 100644
--- a/contrib/mobile/iOS/Onelab/ModelViewController.h
+++ b/contrib/mobile/iOS/Onelab/ModelViewController.h
@@ -20,6 +20,7 @@
 
 @property (nonatomic, retain) EAGLView *glView;
 @property (strong, nonatomic) id detailItem;
+@property (weak, nonatomic) IBOutlet UIButton *runStopButton;
 
 @property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
 
diff --git a/contrib/mobile/iOS/Onelab/ModelViewController.mm b/contrib/mobile/iOS/Onelab/ModelViewController.mm
index 7c2eec8bb8c3b4109fbd05ae4b5aa068243173ea..927f2a67531fd5c81c0f6d41dd9f3e3881a5f1a5 100644
--- a/contrib/mobile/iOS/Onelab/ModelViewController.mm
+++ b/contrib/mobile/iOS/Onelab/ModelViewController.mm
@@ -43,11 +43,21 @@
     }
 }
 
+-(void)viewWillAppear:(BOOL)animated
+{
+	_runStopButton.frame = CGRectMake(self.view.frame.size.width - _runStopButton.frame.size.width - 7, 50, _runStopButton.frame.size.width, _runStopButton.frame.size.height );
+}
+
 -(void)viewDidAppear:(BOOL)animated
 {
-    if(self.initialModel != nil) [self.glView load:self.initialModel];
-	//[self.initialModel release];
-	self.initialModel = nil;
+	if(self.initialModel != nil){
+		UIAlertView* progressAlert = [[UIAlertView alloc] initWithTitle:@"Please wait..." message: @"The model is loading" delegate: self cancelButtonTitle: nil otherButtonTitles: nil];
+		[progressAlert show];
+		[self.glView load:self.initialModel];
+		//[self.initialModel release];
+		self.initialModel = nil;
+		[progressAlert dismissWithClickedButtonIndex:-1 animated:YES];
+	}
 }
 
 - (void)viewDidLoad
@@ -59,16 +69,48 @@
     setObjCBridge((__bridge void*) self);
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestRender) name:@"requestRender" object:nil];
     if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
-		UIBarButtonItem *model = [[UIBarButtonItem alloc] initWithTitle:@"Models list" style:UIBarButtonItemStyleBordered target:self action:@selector(showModelsList)];
+		UIBarButtonItem *model = [[UIBarButtonItem alloc] initWithTitle:@"Model list" style:UIBarButtonItemStyleBordered target:self action:@selector(showModelsList)];
 		[self.navigationItem setRightBarButtonItem:model];
 	}
 	else
 	{
-        UIBarButtonItem *settings = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(showSettings)];
+        UIBarButtonItem *settings = [[UIBarButtonItem alloc] initWithTitle:@"Parameters" style:UIBarButtonItemStyleBordered target:self action:@selector(showSettings)];
         [self.navigationItem setRightBarButtonItem:settings];
     }
+	[_runStopButton addTarget:self action:@selector(compute) forControlEvents:UIControlEventTouchDown];
 }
 
+- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
+{
+	_runStopButton.frame = CGRectMake(self.view.frame.size.width - _runStopButton.frame.size.width - 7, 50, _runStopButton.frame.size.width, _runStopButton.frame.size.height );
+}
+
+- (void)compute
+{
+	[_runStopButton addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchDown];
+	[_runStopButton setTitle:@"Stop" forState:UIControlStateNormal];
+	dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+        appDelegate->compute = YES;
+        onelab_cb("compute");
+		[self performSelectorOnMainThread:@selector(didStopCompute:) withObject:nil waitUntilDone:YES];
+        appDelegate->compute = NO;
+    });
+}
+
+- (void)didStopCompute:(id)sender
+{
+	[self performSelectorOnMainThread:@selector(didStopCompute) withObject:nil waitUntilDone:NO];
+}
+- (void)didStopCompute
+{
+	[_runStopButton addTarget:self action:@selector(compute) forControlEvents:UIControlEventTouchDown];
+	[_runStopButton setTitle:@"Run" forState:UIControlStateNormal];
+}
+- (void)stop
+{
+	onelab_cb("stop");
+}
 - (IBAction)pinch:(UIPinchGestureRecognizer *)sender
 {
     if([sender numberOfTouches] > 2) return;
@@ -150,6 +192,7 @@
 - (void)viewDidUnload
 {
     [self setGlView:nil];
+	[self setRunStopButton:nil];
     [super viewDidUnload];
     // Release any retained subviews of the main view.
 }
@@ -168,7 +211,7 @@
 
 - (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
 {
-    barButtonItem.title = NSLocalizedString(@"Settings", @"Settings");
+    barButtonItem.title = NSLocalizedString(@"Parameters", @"Parameters");
 	[self.navigationItem setLeftBarButtonItem:barButtonItem];
     self.masterPopoverController = popoverController;
 }
diff --git a/contrib/mobile/iOS/Onelab/OptionsViewController.mm b/contrib/mobile/iOS/Onelab/OptionsViewController.mm
index bca0b00adc1eb1b5e544d3d057d5631abb7923da..a572a7d6f2b461f7b064b8c7441b2c7c7a2db7e9 100644
--- a/contrib/mobile/iOS/Onelab/OptionsViewController.mm
+++ b/contrib/mobile/iOS/Onelab/OptionsViewController.mm
@@ -9,6 +9,7 @@
 #import "OptionsViewController.h"
 #import "ParametersViewController.h"
 #import "PostProcessingViewController.h"
+#import "ModelViewController.h"
 
 #include <gmsh/Context.h>
 #include <gmsh/PView.h>
@@ -38,15 +39,17 @@
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshOptions:) name:@"refreshParameters" object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshOptions:) name:@"resetParameters" object:nil];
 
-    self.navigationItem.title = @"Views Options";
+    self.navigationItem.title = @"Display";
 
     [self.navigationController setToolbarHidden:NO];
-	control = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Model's Parmeters", @"Views Options", nil]];
+	control = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Model", @"Display", nil]];
 	control.segmentedControlStyle = UISegmentedControlStyleBar;
 	UIBarButtonItem *controlBtn = [[UIBarButtonItem alloc] initWithCustomView:control];
 	UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
 	self.toolbarItems = [[NSArray alloc] initWithObjects:flexibleSpace, controlBtn, flexibleSpace, nil];
 	[control addTarget:self action:@selector(indexDidChangeForSegmentedControl:) forControlEvents:UIControlEventValueChanged];
+    if(![[UIDevice currentDevice].model isEqualToString:@"iPad"] && ![[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"])
+        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed:)];
 }
 - (void)viewWillAppear:(BOOL)animated
 {
@@ -54,9 +57,14 @@
     [super viewWillAppear:animated];
 }
 
+-(void)backButtonPressed:(id)sender
+{
+    for(UIViewController *v in [self.navigationController viewControllers])
+        if([v isKindOfClass:[ModelViewController class]]) [self.navigationController popToViewController:v animated:YES];
+}
+
 - (void)indexDidChangeForSegmentedControl:(id)sender
 {
-	//[self.navigationController setViewControllers:[[NSArray alloc] initWithObjects:_prevViewController, nil] animated:NO];
     [self.navigationController popViewControllerAnimated:YES];
 }
 
diff --git a/contrib/mobile/iOS/Onelab/ParametersViewController.mm b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
index a962b960c3a863e1cb3ab1e195dad57575592ae4..8567af011c58e8f6fdfd8d555590883dbb41217c 100644
--- a/contrib/mobile/iOS/Onelab/ParametersViewController.mm
+++ b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
@@ -35,32 +35,21 @@
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resetParameters:) name:@"resetParameters" object:nil];
 
 	self.navigationItem.title = @"Model";
-
-    if(((AppDelegate *)[UIApplication sharedApplication].delegate)->compute){ // Only on iPhone/iPod
-        runButton = [[UIBarButtonItem alloc] initWithTitle:@"Stop" style:UIBarButtonItemStyleBordered target:self action:@selector(stopRunning)];
-        [runButton setTitle:@"Stop"];
-        
-    }
-    else {
-        runButton = [[UIBarButtonItem alloc] initWithTitle:@"Run" style:UIBarButtonItemStyleBordered target:self action:@selector(runWithNewParameter:)];
-        [runButton setTitle:@"Run"];
-    }
-	runButton.possibleTitles = [NSSet setWithObjects:@"Run", @"Stop", nil];
-	if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"])
-		self.navigationItem.leftBarButtonItem = runButton;
-	else
-		self.navigationItem.rightBarButtonItem = runButton;
     
     _sections = [[NSMutableArray alloc] init];
     _sectionstitle = [[NSMutableArray alloc] init];
 	
 	[self.navigationController setToolbarHidden:NO];
-	control = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Model's Parmeters", @"Views Options", nil]];
+	control = [[UISegmentedControl alloc] initWithItems:[[NSArray alloc] initWithObjects:@"Model", @"Display", nil]];
 	control.segmentedControlStyle = UISegmentedControlStyleBar;
 	UIBarButtonItem *controlBtn = [[UIBarButtonItem alloc] initWithCustomView:control];
 	UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
 	self.toolbarItems = [[NSArray alloc] initWithObjects:flexibleSpace, controlBtn, flexibleSpace, nil];
 	[control addTarget:self action:@selector(indexDidChangeForSegmentedControl:) forControlEvents:UIControlEventValueChanged];
+	if(![[UIDevice currentDevice].model isEqualToString:@"iPad"] && ![[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
+        self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed:)];
+    }
+	self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Reset" style:UIBarButtonItemStyleBordered target:self action:@selector(resetParameters:)];
 }
 - (void)viewWillAppear:(BOOL)animated
 {
@@ -69,11 +58,14 @@
 	[super viewWillAppear:animated];
 }
 
+-(void)backButtonPressed:(id)sender
+{
+    [self.navigationController popViewControllerAnimated:YES];
+}
+
 - (void)indexDidChangeForSegmentedControl:(id)sender
 {
 	OptionsViewController *optionsViewController = [[OptionsViewController alloc] init];
-	//[self.navigationController setViewControllers:[[NSArray alloc] initWithObjects:postProViewController, nil] animated:NO];
-	[optionsViewController.navigationItem setHidesBackButton:YES];
 	[self.navigationController pushViewController:optionsViewController animated:YES];
 }
 - (void)addParameterNumber:(onelab::number)p atIndexPath:(NSIndexPath*)indexPath
@@ -218,6 +210,12 @@
 }
 - (void)resetParameters:(id)sender
 {
+	if(((AppDelegate *)[UIApplication sharedApplication].delegate)->compute) {
+        UIAlertView *alert;
+        alert = [[UIAlertView alloc] initWithTitle:@"Can't reset model's parameters" message:@"The compute have to be finished before you can reset model's parameters." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
+        [alert show];
+        return;
+    }
     onelab_cb("reset");
     [_sections removeAllObjects];
     [_sectionstitle removeAllObjects];
@@ -227,38 +225,6 @@
     [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
 }
 
-- (void)finishCompute
-{
-	[runButton setTitle:@"Run"];
-	[runButton setAction:@selector(runWithNewParameter:)];
-}
-
-- (void)runWithNewParameter:(UIBarButtonItem *)sender
-{
-    dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-        AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-        appDelegate->compute = YES;
-        [sender setTitle:@"Stop"];
-		[sender setAction:@selector(stopRunning)];
-        self.navigationItem.rightBarButtonItem.enabled = NO;
-        onelab_cb("compute");
-        if([[UIDevice currentDevice].model isEqualToString:@"iPad"] || [[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"]){
-			[self performSelectorOnMainThread:@selector(finishCompute) withObject:nil waitUntilDone:YES];
-            self.navigationItem.rightBarButtonItem.enabled = YES;
-        }
-        appDelegate->compute = NO;
-    });
-    if(![[UIDevice currentDevice].model isEqualToString:@"iPad"] && ![[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"])
-        [self.navigationController popViewControllerAnimated:YES];
-}
-
-- (void)stopRunning
-{
-    onelab_cb("stop");
-    if(![[UIDevice currentDevice].model isEqualToString:@"iPad"] && ![[UIDevice currentDevice].model isEqualToString:@"iPad Simulator"])
-        [self.navigationController popViewControllerAnimated:YES];
-}
-
 #pragma mark - Table View