Index: B:/users/irena/proj1/trunk/core/al/al_mcast.c
===================================================================
--- B:/users/irena/proj1/trunk/core/al/al_mcast.c	(revision 7431)
+++ B:/users/irena/proj1/trunk/core/al/al_mcast.c	(revision 7432)
@@ -113,6 +113,11 @@
 
 	AL_ENTER( AL_DBG_MCAST );
 
+	if (p_h_mcast)
+	{
+		*p_h_mcast = NULL;
+	}
+
 	/* Allocate a new multicast request. */
 	h_mcast = cl_zalloc( sizeof( ib_mcast_t ) );
 	if( !h_mcast )
@@ -195,6 +200,12 @@
 			} while( cl_status == CL_NOT_DONE );
 			CL_ASSERT( cl_status == CL_SUCCESS );
 		}
+
+		if (p_h_mcast) 
+		{
+			ref_al_obj(&h_mcast->obj);
+			*p_h_mcast = h_mcast;
+		}
 	}
 	else
 	{
@@ -203,12 +214,6 @@
 		h_mcast->obj.pfn_destroy( &h_mcast->obj, NULL );
 	}
 
-	if (p_h_mcast) 
-	{
-		ref_al_obj(&h_mcast->obj);
-		*p_h_mcast = h_mcast;
-	}
-
 	/*
 	 * Note: Don't release the reference taken in init_al_obj while we
 	 * have the SA req outstanding.