diff --git a/sm/csm/algos.h b/sm/csm/algos.h
index da28d1466036028d3019810161308bbba82113bb..abcbd1039ef937000bfbbe1a60e51e217afd47aa 100644
--- a/sm/csm/algos.h
+++ b/sm/csm/algos.h
@@ -80,6 +80,19 @@ struct sm_params {
 		double do_alpha_test_thresholdDeg;
 		
 		
+	/** I believe this trick is documented in one of the papers by Guttman (but I can't find
+	    the reference). Or perhaps I was told by him directly. 
+		
+		If you already have a guess of the solution, you can compute the polar angle
+		of the points of one scan in the new position. If the polar angle is not a monotone
+		function of the readings index, it means that the surface is not visible in the 
+		next position. If it is not visible, then we don't use it for matching.
+		
+		This is confusing without a picture! To understand what's going on, make a drawing
+		in which a surface is not visible in one of the poses.
+	
+		Implemented in the function visibilityTest().
+	*/	
 	int do_visibility_test;
 
 	/** If 1, use PlICP; if 0, use vanilla ICP. */