anchor.diff:  	$scope.$watch(function() {
   		return viewModel.selectedStep;
   	}, function(selectedStep) {
  -		viewModel.outputsOfSelectedStep = selectedStep && selectedStep.defaultStepConfig ? _.map(selectedStep.defaultStepConfig.outputs, function(anDefaultOutputConfig) {
  +		configureOutputsForStep(selectedStep);
  +	});
  +
  +	$scope.$watch(function() {
  +		return viewModel.selectedStep ? viewModel.selectedStep.requestedVersion() : undefined;
  +	}, function() {
  +		configureOutputsForStep(viewModel.selectedStep);
  +	});
  +
  +	function configureOutputsForStep(step) {
  +		viewModel.outputsOfSelectedStep = step && step.defaultStepConfig ? _.map(step.defaultStepConfig.outputs, function(anDefaultOutputConfig) {
   			return new Variable(undefined, anDefaultOutputConfig);
   		}) : undefined;
   		viewModel.openedOutputs = [];
  -	});
  +	}
   
   	viewModel.outputSelected = function(output) {
   		if (_.contains(viewModel.openedOutputs, output)) {
  
positive.code: 	$scope.$watch(function() {
  		return viewModel.selectedStep;
  	}, function(selectedStep) {
  		viewModel.inputCategoriesOfSelectedStep = [];
  
  		if (selectedStep && selectedStep.defaultStepConfig) {
  			_.each(selectedStep.defaultStepConfig.inputs, function(anDefaultInputConfig) {
  				var userInputConfig = selectedStep.userStepConfig ? _.find(selectedStep.userStepConfig.inputs, function(aUserInputConfig) {
  					return Variable.keyFromVariableConfig(aUserInputConfig) == Variable.keyFromVariableConfig(anDefaultInputConfig);
  				}) : [];
  
  
negative.code: 				viewModel.openedInputs.push(anInput);
  			})
  		});
  	}
  
  	viewModel.inputCategoryToggled = function(inputCategory) {
  		if (_.contains(viewModel.openedInputCategories, inputCategory)) {
  