diff --git a/changes-5.1.html b/changes-5.1.html
index 4946a7dfc..bc7c84e9d 100644
--- a/changes-5.1.html
+++ b/changes-5.1.html
@@ -17,6 +17,8 @@ xb
Yap-5.1.3:
+- FIXED: too much pruning on predicate_property/2 (obs from Nicos
+Angelopoulos).
- FIXED: make sure we return to system mode on failing yesno.
- FIXED: debugger was broken on call/n.
- FIXED: user:expand_goal should be called before import,
diff --git a/pl/preds.yap b/pl/preds.yap
index e72ef1388..77157f6b5 100644
--- a/pl/preds.yap
+++ b/pl/preds.yap
@@ -821,11 +821,7 @@ predicate_property(Pred,Prop) :-
(
Prop = imported_from(M)
;
- functor(Pred,P,A),
- recorded('$module','$module'(_TFN,Mod,Publics),_),
- lists:memberchk(N/A,Publics)
- ;
- '$predicate_property2'(NPred,Prop,M),
+ '$predicate_property'(NPred,M,M,Prop),
Prop \= exported
).
@@ -858,8 +854,8 @@ predicate_property(Pred,Prop) :-
'$is_public'(P,M).
'$predicate_property'(P,M,M,exported) :-
functor(P,N,A),
- recorded('$module','$module'(_TFN,M,Publics),_),
- lists:memberchk(N/A,Publics), !.
+ once(recorded('$module','$module'(_TFN,M,Publics),_)),
+ lists:memberchk(N/A,Publics).
'$predicate_property'(P,Mod,_,number_of_clauses(NCl)) :-
'$number_of_clauses'(P,Mod,NCl).