diff --git a/contrib/mobile/iOS/Onelab/Parameter.h b/contrib/mobile/iOS/Onelab/Parameter.h
index d226ef2ad0c5c4154bf1a41d52369de280af2d5b..5250ce6b39ba81fb090a41e7dffc9ba3f2066aba 100644
--- a/contrib/mobile/iOS/Onelab/Parameter.h
+++ b/contrib/mobile/iOS/Onelab/Parameter.h
@@ -55,6 +55,15 @@
 -(UISwitch *)getCheckbox;
 @end
 
+@interface ParameterNumberStepper : Parameter
+{
+	@protected
+	UIStepper *stepper;
+}
+-(id)initWithNumber:(onelab::number)number;
+-(UIStepper *)getStepper;
+@end
+
 @interface ParameterNumberRange : Parameter
 {
     @protected
diff --git a/contrib/mobile/iOS/Onelab/Parameter.mm b/contrib/mobile/iOS/Onelab/Parameter.mm
index be8d85c63dea062600835cad69f3798386d963a5..251d98f54135bb050c285bfa25e7b22fd430ec94 100644
--- a/contrib/mobile/iOS/Onelab/Parameter.mm
+++ b/contrib/mobile/iOS/Onelab/Parameter.mm
@@ -230,6 +230,56 @@
 }
 @end
 
+@implementation ParameterNumberStepper
+-(id) initWithNumber:(onelab::number) number
+{
+    self = [super init];
+    if(self)
+	{
+		name = [NSString stringWithCString:number.getName().c_str() encoding:[NSString defaultCStringEncoding]];
+		label.alpha = (number.getReadOnly())? 0.439216f : 1.0f;
+		stepper = [[UIStepper alloc] init];
+		[stepper setValue:number.getValue()];
+		[stepper setStepValue:1];
+		[stepper setMaximumValue:number.getMax()];
+		[stepper setMinimumValue:number.getMin()];
+		[stepper addTarget:self action:@selector(stepperValueChanged:) forControlEvents:UIControlEventValueChanged];
+		[label setText:[NSString stringWithFormat:@"%s %d" ,number.getShortName().c_str(), (int)number.getValue()]];
+	}
+	return self;
+}
+-(void)stepperValueChanged:(UIStepper *)sender
+{
+	std::vector<onelab::number> number;
+    onelab::server::instance()->get(number,[name UTF8String]);
+    if(number.size() < 1) return;
+    number[0].setValue(sender.value);
+    onelab::server::instance()->set(number[0]);
+    [label setText:[NSString stringWithFormat:@"%s %d" ,number[0].getShortName().c_str(), (int)number[0].getValue()]];
+    if(onelab_cb("check") == 1)
+        [[NSNotificationCenter defaultCenter] postNotificationName:@"requestRender" object:nil];
+}
+-(void)refresh
+{
+	std::vector<onelab::number> number;
+    onelab::server::instance()->get(number,[name UTF8String]);
+    if(number.size() < 1) return;
+	[stepper setValue:number[0].getValue()];
+}
+-(void)setFrame:(CGRect)frame
+{
+    [stepper setFrame:frame];
+}
+-(UIStepper *)getStepper
+{
+	return stepper;
+}
++(double)getHeight
+{
+    return 60.0f;
+}
+@end
+
 @implementation ParameterNumberRange
 -(id) initWithNumber:(onelab::number) number
 {
diff --git a/contrib/mobile/iOS/Onelab/ParametersViewController.mm b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
index 14f2dbcf30c5213254e2dcfb483df2da9d757259..dee73a14a3f7e659a301f6627b2d9b714784d289 100644
--- a/contrib/mobile/iOS/Onelab/ParametersViewController.mm
+++ b/contrib/mobile/iOS/Onelab/ParametersViewController.mm
@@ -82,6 +82,10 @@
         ParameterNumberTextbox *param = [[ParameterNumberTextbox alloc] initWithNumber:p];
         [section addObject:param];
     }
+	else if(p.getStep() == 1) { // stepper
+		ParameterNumberStepper *param = [[ParameterNumberStepper alloc] initWithNumber:p];
+        [section addObject:param];
+	}
     else
     {
         ParameterNumberRange *param = [[ParameterNumberRange alloc] initWithNumber:p];
@@ -289,6 +293,11 @@
         [param setLabelFrame:CGRectMake(100, 5, cell.frame.size.width - 110, cell.frame.size.height)];
         [param setFrame:CGRectMake(20, 5, cell.frame.size.width - 40, cell.frame.size.height)];
         [cell addSubview:[param getCheckbox]];
+    }
+	else if([tmp isKindOfClass:[ParameterNumberStepper class]]) {
+        ParameterNumberStepper *param = (ParameterNumberStepper *)tmp;
+        [param setFrame:CGRectMake(20, cell.frame.size.height/2+5, cell.frame.size.width - 40, cell.frame.size.height/2)];
+        [cell addSubview:[param getStepper]];
     }
     else if([tmp isKindOfClass:[ParameterNumberRange class]]) {
         ParameterNumberRange *param = (ParameterNumberRange *)tmp;