diff --git a/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/Bso_oriented_side.tex b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/Bso_oriented_side.tex
new file mode 100644
index 00000000000..ebfe6503b73
--- /dev/null
+++ b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/Bso_oriented_side.tex
@@ -0,0 +1,121 @@
+\ccRefPageBegin
+\label{ref_bso_oriented_side}
+
+\begin{ccRefFunction}{oriented_side}
+
+\ccThree{Oriented_side}{oriented_side}{}
+\ccThreeToTwo
+
+\ccDefinition
+
+\ccInclude{CGAL/Boolean_set_operations_2.h}
+
+\ccGlobalFunction{Oriented_side oriented_side(const Type1 & p1, const Type2 & p2);}
+{Each one of these functions returns \ccc{ON_POSITIVE_SIDE} if the two
+ given polygons \ccc{p1} and \ccc{p2} intersect in their interior,
+ \ccc{ON_NEGATIVE_SIDE} if \ccc{p1} and \ccc{p2} do not intersect at
+ all, and \ccc{ON_ORIENTED_BOUNDARY} if \ccc{p1} and \ccc{p2} intersect
+ only in their boundaries.}
+
+\begin{ccTexOnly}
+\begin{longtable}[c]{|l|l|}
+\multicolumn{2}{l}{\sl \ \ }
+\endfirsthead
+\multicolumn{2}{l}{\sl continued}
+\endhead
+\hline
+\textbf{Arg 1 Type} & \textbf{Arg 2 Type}\\
+\hline
+\hline
+\ccc{Polygon_2} & \ccc{Polygon_2}\\
+\hline
+\ccc{Polygon_2} & \ccc{Polygon_with_holes_2}\\
+\hline
+\ccc{Polygon_with_holes_2} & \ccc{Polygon_2}\\
+\hline
+\ccc{Polygon_with_holes_2} & \ccc{Polygon_with_holes_2}\\
+\hline
+\ccc{General_polygon_2} & \ccc{General_polygon_2}\\
+\hline
+\ccc{General_polygon_2} & \ccc{General_polygon_with_holes_2}\\
+\hline
+\ccc{General_polygon_with_holes_2} & \ccc{General_polygon_2}\\
+\hline
+\ccc{General_polygon_with_holes_2} & \ccc{General_polygon_with_holes_2}\\
+\hline
+\end{longtable}
+\end{ccTexOnly}
+
+\begin{ccHtmlOnly}
+
+
+| Arg 1 type | Arg 2 type |
+| Polygon_2 | Polygon_2 |
+| Polygon_2 | Polygon_with_holes_2 |
+| Polygon_with_holes_2 | Polygon_2 |
+| Polygon_with_holes_2 | Polygon_with_holes_2 |
+| General_polygon_2 | General_polygon_2 |
+| General_polygon_2 | General_polygon_with_holes_2 |
+| General_polygon_with_holes_2 | General_polygon_2 |
+| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
+
+
+\end{ccHtmlOnly}
+
+\ccGlobalFunction{template
+Oriented_side oriented_side(const Polygon_2 & p1,
+ const Polygon_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const Polygon_2 & p1,
+ const Polygon_with_holes_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const Polygon_with_holes_2 & p1,
+ const Polygon_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const Polygon_with_holes_2 & p1,
+ const Polygon_with_holes_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const General_polygon_2 & p1,
+ const General_polygon_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const General_polygon_2 & p1,
+ const General_polygon_with_holes_2 > & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const General_polygon_with_holes_2 > & p1,
+ const General_polygon_2 & p2);}
+\ccGlue
+\ccGlobalFunction{template
+Oriented_side oriented_side(const General_polygon_with_holes_2 & p1,
+ const General_polygon_with_holes_2 & p2);}
+
+%% \ccGlobalFunction{template
+%% Oriented_side oriented_side(InputIterator begin, InputIterator end);}
+%% {Returns \ccc{ON_POSITIVE_SIDE} if the set of general polygons (or
+%% general polygons with holes) in the given range intersect in their
+%% interior, \ccc{ON_NEGATIVE_SIDE} if they do not intersect at all,
+%% and \ccc{ON_ORIENTED_BOUNDARY} if they intersect only in their
+%% boundaries. (The value type of the input iterator is used to
+%% distinguish between the two).}
+
+%% \ccGlobalFunction{template
+%% Oriented_side oriented_side(InputIterator1 pgn_begin1,
+%% InputIterator1 pgn_end1,
+%% InputIterator2 pgn_begin2,
+%% InputIterator2 pgn_end2);}
+%% {Returns \ccc{ON_POSITIVE_SIDE} if the set of general polygons and
+%% general polygons with holes in the given two ranges, respectively,
+%% intersect in their interior, \ccc{ON_NEGATIVE_SIDE} if they do not
+%% intersect at all, and \ccc{ON_ORIENTED_BOUNDARY} if they intersect
+%% only in their boundaries.}
+
+\ccSeeAlso
+\ccRefIdfierPage{CGAL::do_intersect}
+\end{ccRefFunction}
+
+\ccRefPageEnd
diff --git a/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/intro.tex b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/intro.tex
index 05eb0a14488..b4c1a1a8998 100644
--- a/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/intro.tex
+++ b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/intro.tex
@@ -56,6 +56,8 @@ containment predicates.
{\lcTex{\dotfill page~\pageref{ref_bso_difference}}}\\
\ccc{CGAL::symmetric_difference}
{\lcTex{\dotfill page~\pageref{ref_bso_symmetric_difference}}}\\
+\ccc{CGAL::oriented_side}
+ {\lcTex{\dotfill page~\pageref{ref_bso_oriented_side}}}\\
\ccc{CGAL::connect_holes}
{\lcTex{\dotfill page~\pageref{ref_bso_connect_holes}}}\\
\ccc{CGAL::operator<<}
diff --git a/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/main.tex b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/main.tex
index 069cf66f715..4a2285659a2 100644
--- a/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/main.tex
+++ b/Boolean_set_operations_2/doc_tex/Boolean_set_operations_2_ref/main.tex
@@ -21,6 +21,7 @@
\input{Boolean_set_operations_2_ref/Bso_complement.tex}
\input{Boolean_set_operations_2_ref/Bso_difference.tex}
\input{Boolean_set_operations_2_ref/Bso_do_intersect.tex}
+\input{Boolean_set_operations_2_ref/Bso_oriented_side.tex}
\input{Boolean_set_operations_2_ref/Bso_intersection.tex}
\input{Boolean_set_operations_2_ref/Bso_join.tex}
\input{Boolean_set_operations_2_ref/Bso_symmetric_difference.tex}