diff --git a/pl/absf.yap b/pl/absf.yap
index 92c6fb6ef..77f6cb4e1 100755
--- a/pl/absf.yap
+++ b/pl/absf.yap
@@ -133,7 +133,7 @@ absolute_file_name(File0,File) :-
 	'$absolute_file_name'(File0,[access(none),file_type(txt),file_errors(fail),solutions(first)],File,absolute_file_name(File0,File)).
 
 '$full_filename'(F0, F, G) :-
-    '$absolute_file_name'(F0,[access(read),file_type(prolog),file_errors(fail),solutions(first),expand(true)],F,G).
+	'$absolute_file_name'(F0,[access(read),file_type(prolog),file_errors(fail),solutions(first),expand(true)],F,G).
 
 '$absolute_file_name'(File, _Opts, _TrueFileName, G) :- var(File), !,
 	'$do_error'(instantiation_error, G).
diff --git a/pl/consult.yap b/pl/consult.yap
index c58564ee8..7bd7ec4ac 100644
--- a/pl/consult.yap
+++ b/pl/consult.yap
@@ -839,7 +839,7 @@ db_files(Fs) :-
 	'$msg_level'( TOpts, Verbosity),
 	'$full_filename'(X, Y , ( :- include(X)) ),
 	'$lf_opt'(stream, TOpts, OldStream),
-	source_location(Y, L),
+	source_location(OldY, L),
 	'$current_module'(Mod),
 	( open(Y, read, Stream) 	->
 	  true ;
@@ -847,9 +847,9 @@ db_files(Fs) :-
 	),
 	'$set_current_loop_stream'(OldStream, Stream),
 	H0 is heapused, '$cputime'(T0,_),
-	'$full_filename'(X, Y,include(X) ),
-	'$loaded'(Y, X,  Mod, L, include, _, Y, _Dir, []),
-	( '$nb_getval'('$included_file', OY, fail ) -> true ; OY = [] ),
+	working_directory(Dir, Dir),
+	'$loaded'(Y, X,  Mod, OldY, L, include, _, Dir, []),
+        ( '$nb_getval'('$included_file', OY, fail ) -> true ; OY = [] ),
 	'$lf_opt'(encoding, TOpts, Encoding),
 	'$set_encoding'(Stream, Encoding),
 	nb_setval('$included_file', Y),
@@ -867,7 +867,7 @@ db_files(Fs) :-
 % reconsult at startup...
 %
 '$do_startup_reconsult'(_X) :-
-    '$init_win_graphics',
+	'$init_win_graphics',
     fail.
 '$do_startup_reconsult'(X) :-
 	( '$access_yap_flags'(15, 0) ->
@@ -1011,14 +1011,9 @@ prolog_load_context(term_position, Position) :-
 	!,
 	'$import_to_current_module'(F, M, Imports, _, TOpts).
 
-'$ensure_file_loaded'(F, _M, F1) :-
-	recorded('$source_file','$source_file'(F1, _, _),_),    
-	recorded('$module','$module'(F1,_NM,_Source,_P,_),_),
-	same_file(F1, F), !.
-
 '$ensure_file_loaded'(F, M) :-
 				% loaded from the same module, but does not define a module.
-	recorded('$source_file','$source_file'(F, _Age, NM), _R),
+	 recorded('$source_file','$source_file'(F, _Age, NM), _R),
 				% make sure: it either defines a new module or it was loaded in the same context
 	( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
 
@@ -1032,7 +1027,7 @@ prolog_load_context(term_position, Position) :-
 % module can be reexported.
 '$ensure_file_unchanged'(F, M) :-
                                 % loaded from the same module, but does not define a module.
-	recorded('$source_file','$source_file'(F, Age, NM), R), writeln(M:NM),
+	recorded('$source_file','$source_file'(F, Age, NM), R),
 				% make sure: it either defines a new module or it was loaded in the same context
 	'$file_is_unchanged'(F, R, Age),
         ( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
@@ -1073,7 +1068,8 @@ prolog_load_context(term_position, Position) :-
 	    Reconsult = Reconsult0
 	),
 	( F == user_input -> Age = 0 ; time_file64(F, Age) ),
-	% modules are logically loaded only once
+				% modules are logically loaded only once
+	
 	( recorded('$module','$module'(F,_DonorM,_SourceF, _AllExports, _Line),_) -> true  ;
 		  recordaifnot('$source_file','$source_file'( F, Age, M), _) -> true ;
 		  true ),
@@ -1442,7 +1438,8 @@ Similar to initialization/1, but allows for specifying when
 
 */
 initialization(G,OPT) :-
-	'$initialization'(G,OPT).
+	( '$initialization'(G,OPT) -> fail ).
+initialization(_G,_OPT).
 
 '$initialization'(G,OPT) :-
 	(
@@ -1458,29 +1455,27 @@ initialization(G,OPT) :-
 	->
 	  '$do_error'(type_error(callable,G),initialization(G,OPT))
 	;
-	   var(OPT)
+	 OPT == now
 	->
-	  '$do_error'(instantiation_error,initialization(G,OPT))
+	 fail
 	;
-	  atom(OPT)
+	 OPT == after_load
 	->
-	  (
-	   OPT == now
-	  ->
-	   fail
-	  ;
-	   OPT == after_load
-	  ->
-	   fail
-	  ;
-	   OPT == restore
-	  ->
-	   fail
-	  ;
-	   '$do_error'(domain_error(initialization,OPT),initialization(OPT))
-	  )
+	 fail
 	;
-	  '$do_error'(type_error(OPT),initialization(G,OPT))
+	 OPT == restore
+	->
+	 fail
+	;
+	 var(OPT)
+        ->
+         '$do_error'(instantiation_error,initialization(G,OPT))
+        ;
+	 atom(OPT)
+        ->
+	 '$do_error'(domain_error(initialization,OPT),initialization(OPT))
+	;
+	 '$do_error'(type_error(atom,OPT),initialization(OPT))
 	).
 '$initialization'(G,now) :-
 	( call(G) -> true ;
@@ -1514,7 +1509,7 @@ compilation is to simplify writing portable code.
 
 
 Note that these directives can only be appear as separate terms in the
-input.  Typical usage scenarios include:
+  input.  Typical usage scenarios include:
 
 
     Load different libraries on different dialects
@@ -1542,7 +1537,7 @@ section_else.
 
 /** @pred    if( : _Goal_)
 
-Compile subsequent code only if  _Goal_ succeeds.  For enhanced
+  Compile subsequent code only if  _Goal_ succeeds.  For enhanced
 portability,  _Goal_ is processed by `expand_goal/2` before execution.
 If an error occurs, the error is printed and processing proceeds as if
  _Goal_ has failed.