Index: libcfa/src/bits/collection.hfa
===================================================================
--- libcfa/src/bits/collection.hfa	(revision e91a255f5dee71cf7d5765c7741c5147db2d26e2)
+++ libcfa/src/bits/collection.hfa	(revision 5992ff4dff1337b867acae8e32650d328392643f)
@@ -30,6 +30,6 @@
 	// wrappers to make Collection have T
 	forall( dtype T ) {
-		T *& Next( T & n ) {
-			return (T *)Next( (Colable *)&n );
+		T *& Next( T * n ) {
+			return (T *)Next( (Colable *)n );
 		}
 
Index: libcfa/src/bits/queue.hfa
===================================================================
--- libcfa/src/bits/queue.hfa	(revision e91a255f5dee71cf7d5765c7741c5147db2d26e2)
+++ libcfa/src/bits/queue.hfa	(revision 5992ff4dff1337b867acae8e32650d328392643f)
@@ -31,5 +31,5 @@
 			if ( ! listed( n ) ) abort( "(Queue &)%p.succ( %p ) : Node is not on a list.", &q, n );
 			#endif // __CFA_DEBUG__
-			return (Next( *n ) == n) ? 0p : Next( *n );
+			return (Next( n ) == n) ? 0p : Next( n );
 		} // post: n == tail() & succ(n) == 0 | n != tail() & *succ(n) in *q
 
@@ -39,9 +39,9 @@
 			#endif // __CFA_DEBUG__
 			if ( last ) {
-				Next( n ) = &head( q );
+				Next( &n ) = &head( q );
 				q.root = &n;
 			} else {
 				root = last = &n;
-				Next( n ) = &n;							// last node points to itself
+				Next( &n ) = &n;						// last node points to itself
 			}
 		}
@@ -51,8 +51,8 @@
 			if ( listed( &n ) ) abort( "(Queue &)%p.addTail( %p ) : Node is already on another list.", &q, &n );
 			#endif // __CFA_DEBUG__
-			if ( last ) Next( *last ) = &n;
+			if ( last ) Next( last ) = &n;
 			else root = &n;
 			last = &n;
-			Next( n ) = &n;								// last node points to itself
+			Next( &n ) = &n;							// last node points to itself
 		}
 
@@ -64,9 +64,9 @@
 			T & t = head( q );
 			if ( root ) {
-				root = Next( *root );
+				root = Next( root );
 				if ( &head( q ) == &t ) {
 					root = last = 0p;					// only one element
 				}
-				Next( t ) = 0p;
+				Next( &t ) = 0p;
 			}
 			return t;
@@ -81,25 +81,25 @@
 			if ( ! listed( (Colable &)n ) ) abort( "(Queue &)%p.remove( %p ) : Node is not on a list.", &q, &n );
 			#endif // __CFA_DEBUG__
-			T & prev = *0p;
-			T & curr = *(T *)root;
+			T * prev = 0p;
+			T * curr = (T *)root;
 			for ( ;; ) {
-				if ( &n == &curr ) {						// found => remove
+				if ( &n == curr ) {						// found => remove
 					if ( (T *)root == &n ) {
 						dropHead( q );
 					} else if ( last == &n ) {
-						last = &prev;
-						Next( *last ) = last;
+						last = prev;
+						Next( last ) = last;
 					} else {
 						Next( prev ) = Next( curr );
 					}
-					Next( n ) = 0p;
+					Next( &n ) = 0p;
 					break;
 				}
 				// not found => error
 				#ifdef __CFA_DEBUG__
-				if ( &curr == last ) abort( "(Queue &)%p.remove( %p ) : Node is not in list.", &q, &n );
+				if ( curr == last ) abort( "(Queue &)%p.remove( %p ) : Node is not in list.", &q, &n );
 				#endif // __CFA_DEBUG__
-				&prev = &curr;
-				&curr = Next( curr );
+				prev = curr;
+				curr = Next( curr );
 			}
 		} // post: ! listed( n )
@@ -116,5 +116,5 @@
 				root = from.root;
 			} else {									// "to" list not empty
-				Next( *last ) = &head( from );
+				Next( last ) = &head( from );
 			}
 			last = from.last;
@@ -131,9 +131,9 @@
 			to.root = from.root;						// start of "to" list
 			to.last = &n;								// end of "to" list
-			from.root = Next( n );						// start of "from" list
+			from.root = Next( &n );						// start of "from" list
 			if ( &n == &head( from ) ) {				// last node in list ?
 				from.root = from.last = 0p;				// mark "from" list empty
 			} else {
-				Next( n ) = &n;							// fix end of "to" list
+				Next( &n ) = &n;						// fix end of "to" list
 			}
 			transfer( q, to );
@@ -169,5 +169,5 @@
 			if ( curr ) {
 				&tp = Curr( qi );
-				T * n = Next( *Curr( qi ) );
+				T * n = Next( Curr( qi ) );
 				curr = (n == Curr( qi ) ) ? 0p : n;
 			} else &tp = 0p;
Index: libcfa/src/bits/sequence.hfa
===================================================================
--- libcfa/src/bits/sequence.hfa	(revision e91a255f5dee71cf7d5765c7741c5147db2d26e2)
+++ libcfa/src/bits/sequence.hfa	(revision 5992ff4dff1337b867acae8e32650d328392643f)
@@ -12,5 +12,5 @@
 
 	void ?{}( Seqable & sq ) with( sq ) {
-		((Colable &) sq){};
+		((Colable &)sq){};
 		back = 0p;
 	} // post: ! listed()
@@ -28,6 +28,6 @@
 	// wrappers to make Collection have T
 	forall( dtype T ) {
-		T *& Back( T & n ) {
-			return (T *)Back( (Seqable *)&n );
+		T *& Back( T * n ) {
+			return (T *)Back( (Seqable *)n );
 		}
 	} // distribution
@@ -49,10 +49,10 @@
 
 		void ?{}( Sequence(T) & s ) with( s ) {	
-			((Collection &) s){};
+			((Collection &)s){};
 		}	// post: isEmpty().
 
 		// Return a pointer to the last sequence element, without removing it.	
 		T & tail( Sequence(T) & s ) with( s ) {
-			return root ? (T &)*Back( head( s ) ) : *0p;
+			return root ? (T &)*Back( &head( s ) ) : *0p;
 		}	// post: empty() & tail() == 0 | !empty() & tail() in *s
 
@@ -62,5 +62,5 @@
 			if ( ! listed( n ) ) abort( "(Sequence &)%p.succ( %p ) : Node is not on a list.", &s, n );
 			#endif // __CFA_DEBUG__
-			return Next( *n ) == &head( s ) ? 0p : Next( *n );
+			return Next( n ) == &head( s ) ? 0p : Next( n );
 		} // post: n == tail() & succ(n) == 0 | n != tail() & *succ(n) in *s
 
@@ -70,5 +70,5 @@
 			if ( ! listed( n ) ) abort( "(Sequence &)%p.pred( %p ) : Node is not on a list.", &s, n );
 			#endif // __CFA_DEBUG__
-			return n == &head( s ) ? 0p : Back( *n );
+			return n == &head( s ) ? 0p : Back( n );
 		}	// post: n == head() & head(n) == 0 | n != head() & *pred(n) in *s
 
@@ -81,13 +81,13 @@
 			if ( &bef == &head( s ) ) {					// must change root
 				if ( root ) {
-					Next( n ) = &head( s );
-					Back( n ) = Back( head( s ) );
+					Next( &n ) = &head( s );
+					Back( &n ) = Back( &head( s ) );
 					// inserted node must be consistent before it is seen
 					asm( "" : : : "memory" );			// prevent code movement across barrier
-					Back( head( s ) ) = &n;
-					Next( *Back( n ) ) = &n;
+					Back( &head( s ) ) = &n;
+					Next( Back( &n ) ) = &n;
 				} else {
-					Next( n ) = &n;
-					Back( n ) = &n;
+					Next( &n ) = &n;
+					Back( &n ) = &n;
 				} // if
 				// inserted node must be consistent before it is seen
@@ -96,10 +96,10 @@
 			} else {
 				if ( ! &bef ) &bef = &head( s );
-				Next( n ) = &bef;
-				Back( n ) = Back( bef );
+				Next( &n ) = &bef;
+				Back( &n ) = Back( &bef );
 				// inserted node must be consistent before it is seen
 				asm( "" : : : "memory" );				// prevent code movement across barrier
-				Back( bef ) = &n;
-				Next( *Back( n ) ) = &n;
+				Back( &bef ) = &n;
+				Next( Back( &n ) ) = &n;
 			} // if
 		}	// post: n->listed() & *n in *s & succ(n) == bef
@@ -113,23 +113,23 @@
 			if ( ! &aft ) {								// must change root
 				if ( root ) {
-					Next( n ) = &head( s );
-					Back( n ) = Back( head( s ) );
+					Next( &n ) = &head( s );
+					Back( &n ) = Back( &head( s ) );
 					// inserted node must be consistent before it is seen
 					asm( "" : : : "memory" );			// prevent code movement across barrier
-					Back( head( s ) ) = &n;
-					Next( *Back( n ) ) = &n;
+					Back( &head( s ) ) = &n;
+					Next( Back( &n ) ) = &n;
 				} else {
-					Next( n ) = &n;
-					Back( n ) = &n;
+					Next( &n ) = &n;
+					Back( &n ) = &n;
 				} // if
 				asm( "" : : : "memory" );				// prevent code movement across barrier
 				root = &n;
 			} else {
-				Next( n ) = Next( aft );
-				Back( n ) = &aft;
+				Next( &n ) = Next( &aft );
+				Back( &n ) = &aft;
 				// inserted node must be consistent before it is seen
 				asm( "" : : : "memory" );				// prevent code movement across barrier
-				Back( *Next( n ) ) = &n;
-				Next( aft ) = &n;
+				Back( Next( &n ) ) = &n;
+				Next( &aft ) = &n;
 			} // if
 		}	  // post: n->listed() & *n in *s & succ(n) == bef
@@ -141,10 +141,10 @@
 			#endif // __CFA_DEBUG__
 			if ( &n == &head( s ) ) {
-				if ( Next( head( s ) ) == &head( s ) ) root = 0p;
-				else root = Next( head( s ) );
-			} // if
-			Back( *Next( n ) ) = Back( n );
-			Next( *Back( n ) ) = Next( n );
-			Next( n ) = Back( n ) = 0p;
+				if ( Next( &head( s ) ) == &head( s ) ) root = 0p;
+				else root = Next( &head( s ) );
+			} // if
+			Back( Next( &n ) ) = Back( &n );
+			Next( Back( &n ) ) = Next( &n );
+			Next( &n ) = Back( &n ) = 0p;
 		}							// post: !n->listed().
 
@@ -182,10 +182,10 @@
 				root = from.root;
 			} else {									// "to" list not empty
-				T * toEnd = Back( head( s ) );
-				T * fromEnd = Back( head( from ) );
-				Back( *root ) = fromEnd;
-				Next( *fromEnd ) = &head( s );
-				Back( *from.root ) = toEnd;
-				Next( *toEnd ) = &head( from );
+				T * toEnd = Back( &head( s ) );
+				T * fromEnd = Back( &head( from ) );
+				Back( root ) = fromEnd;
+				Next( fromEnd ) = &head( s );
+				Back( from.root ) = toEnd;
+				Next( toEnd ) = &head( from );
 			} // if
 			from.root = 0p;								// mark "from" list empty
@@ -200,12 +200,12 @@
 			Sequence(T) to;
 			to.root = from.root;						// start of "to" list
-			from.root = Next( n );						// start of "from" list
+			from.root = Next( &n );						// start of "from" list
 			if ( to.root == from.root ) {				// last node in list ?
 				from.root = 0p;							// mark "from" list empty
 			} else {
-				Back( head( from ) ) = Back( head( to ) ); // fix "from" list
-		 		Next( *Back( head( to ) ) ) = &head( from );
-				Next( n ) = &head( to );				// fix "to" list
-				Back( head( to ) ) = &n;
+				Back( &head( from ) ) = Back( &head( to ) ); // fix "from" list
+		 		Next( Back( &head( to ) ) ) = &head( from );
+				Next( &n ) = &head( to );				// fix "to" list
+				Back( &head( to ) ) = &n;
 			} // if
 			transfer( s, to );
@@ -231,5 +231,5 @@
 
 		void ?{}( SeqIter(T) & si, Sequence(T) & s ) with( si ) {
-			((ColIter &) si){};
+			((ColIter &)si){};
 			seq = &s;
 			curr = &head( s );
@@ -237,5 +237,5 @@
 
 		void ?{}( SeqIter(T) & si, Sequence(T) & s, T & start ) with( si ) {
-			((ColIter &) si){};
+			((ColIter &)si){};
 			seq = &s;
 			curr = &start;
@@ -267,10 +267,10 @@
 	inline {
 		void ?{}( SeqIterRev(T) & si ) with( si ) {	
-			((ColIter &) si){};
+			((ColIter &)si){};
 			seq = 0p;
 		} // post: elts = null.
 
 		void ?{}( SeqIterRev(T) & si, Sequence(T) & s ) with( si ) {	
-			((ColIter &) si){};
+			((ColIter &)si){};
 			seq = &s;
 			curr = &tail( s );
@@ -278,5 +278,5 @@
 
 		void ?{}( SeqIterRev(T) & si, Sequence(T) & s, T & start ) with( si ) {	
-			((ColIter &) si){};
+			((ColIter &)si){};
 			seq = &s;
 			curr = &start;
Index: libcfa/src/bits/stack.hfa
===================================================================
--- libcfa/src/bits/stack.hfa	(revision e91a255f5dee71cf7d5765c7741c5147db2d26e2)
+++ libcfa/src/bits/stack.hfa	(revision 5992ff4dff1337b867acae8e32650d328392643f)
@@ -29,5 +29,5 @@
 			if ( listed( (Colable &)(n) ) ) abort( "(Stack &)%p.addHead( %p ) : Node is already on another list.", &s, n );
 			#endif // __CFA_DEBUG__
-			Next( n ) = &head( s ) ? &head( s ) : &n;
+			Next( &n ) = &head( s ) ? &head( s ) : &n;
 			root = &n;
 		}
@@ -44,7 +44,7 @@
 			T & t = head( s );
 			if ( root ) {
-				root = ( T *)Next( *root );
+				root = ( T *)Next( root );
 				if ( &head( s ) == &t ) root = 0p;		// only one element ?
-				Next( t ) = 0p;
+				Next( &t ) = 0p;
 			} // if
 			return t;
@@ -85,5 +85,5 @@
 			if ( curr ) {
 				&tp = Curr( si );
-				T * n = Next( *Curr( si ) );
+				T * n = Next( Curr( si ) );
 				curr = n == Curr( si ) ? 0p : n;
 			} else &tp = 0p;
