--- multistep.module	2010-04-09 14:03:00.000000000 +0200
+++ multistepNew.module	2010-04-09 14:02:39.000000000 +0200
@@ -370,7 +370,6 @@ function multistep_form_alter(&$form, &$
   $type = $form['#node']->type;
   // Do nothing if multistep is not enabled for this node type.
   if (variable_get('multistep_expose_' . $type, 'disabled') != 'enabled'
-  || substr_count($form_id, 'node_form') <= 0
   || arg(0) == 'admin') {
     return;
   }
@@ -383,6 +382,7 @@ function multistep_form_alter(&$form, &$
   // We need to remove #redirect to prevent redirection to the profile main page
   if (module_exists('content_profile') && is_content_profile($type)) {
     unset($form['#redirect']);
+    $form['submit']['#access']=FALSE;
   }
   $step = _multistep_get_current_step($type);
   // This hides extra fields for steps they don't belong in.
@@ -451,9 +451,15 @@ function multistep_form_alter(&$form, &$
     );
   }
   // Allow user with "toggle multistep" permissions to toggle between multistep or entire form.
+  // check if user registration page or backend editing etc.. 
+  if (arg(0)=='user'){
+    $content_profile_url = 'profile/';
+  }else{
+    $content_profile_url = 'profile/' . arg(3). "/";
+  }
   $form['buttons']['all'] = array(
     '#type' => 'item',
-    '#value' => l('View ' . ($step == 0 ? 'multistep' : 'entire') . ' form', arg(0) . '/' . arg(1) . '/' . (module_exists('content_profile') && is_content_profile($type) ? 'profile/' . arg(3) : arg(2)) . ($step == 0 ? '/1' : '/0')),
+    '#value' => l('View ' . ($step == 0 ? 'multistep' : 'entire') . ' form', arg(0) . '/' . arg(1) . '/' . (module_exists('content_profile') && is_content_profile($type) ? $content_profile_url : arg(2)) . ($step == 0 ? '1' : '0')),
     '#weight' => 106,
     '#access' => user_access('toggle multistep'),
   );
@@ -521,7 +527,10 @@ function multistep_validate($form, &$for
 function multistep_submit($form, &$form_state, $action) {
   // Submit the actual values.
   node_form_submit($form, $form_state);
-  $type = $form_state['values']['type'];
+  if (is_array($form_state['content_profile_registration'])){
+    $content_type_part = reset($form_state['content_profile_registration']);
+  }
+  $type=$content_type_part['node']->type;
   $step = _multistep_get_current_step($type);
   $nid = $form_state['nid'];
   // Update the multistep table.
