let prunable menv subst ty todo =
   let rec aux = function
     | (S(_,k,_,_))::tl ->
-       (match Equality.meta_convertibility_subst k ty menv with
+        (match Equality.meta_convertibility_subst k ty menv with
          | None -> aux tl
-         | Some variant -> no_progress variant tl (* || aux tl)*) )
+         | Some variant -> 
+              no_progress variant tl (* || aux tl*))
     | (D (_,_,T))::tl -> aux tl
     | _ -> false
   and no_progress variant = function
     | [] -> prerr_endline "++++++++++++++++++++++++ no_progress"; true
     | D ((n,_,P) as g)::tl -> 
        (match calculate_goal_ty g subst menv with
-           | None -> no_progress subst tl
+           | None -> no_progress variant tl
            | Some (_, gty) -> 
               (match calculate_goal_ty g variant menv with
                  | None -> assert false
-                 | Some (_, gty') ->  
+                 | Some (_, gty') ->
                      if gty = gty' then
-                       no_progress variant tl
+                        no_progress variant tl
                      else false))
-    | _::tl -> no_progress subst tl
+    | _::tl -> no_progress variant tl
   in
     aux todo
 
 
               let (_,c,t) = CicUtil.lookup_meta x menv in
               let irl = 
                 CicMkImplicit.identity_relocation_list_for_metavariable c in
-              (x,(c,Cic.Meta(y,irl),t))
+              (y,(c,Cic.Meta(x,irl),t))
             with CicUtil.Meta_not_found _ ->
               try 
                 let (_,c,t) = CicUtil.lookup_meta y menv in
                 let irl =  
                   CicMkImplicit.identity_relocation_list_for_metavariable c in
-                  (y,(c,Cic.Meta(x,irl),t))
+                  (x,(c,Cic.Meta(y,irl),t))
               with CicUtil.Meta_not_found _ -> assert false) l in   
        Some subst
     with NotMetaConvertible ->