diff --git a/src/zmapView/zmapView.c b/src/zmapView/zmapView.c
index 23792c1dc4d41ef6a388d93d2d0f565a3461abb1..7f89a3845c646d564af04988f5559c07cf2d5c43 100755
--- a/src/zmapView/zmapView.c
+++ b/src/zmapView/zmapView.c
@@ -27,9 +27,9 @@
  *              
  * Exported functions: See ZMap/zmapView.h
  * HISTORY:
- * Last edited: Oct 28 09:41 2009 (edgrif)
+ * Last edited: Dec 16 10:33 2009 (edgrif)
  * Created: Thu May 13 15:28:26 2004 (edgrif)
- * CVS info:   $Id: zmapView.c,v 1.173 2009-12-14 16:37:59 mh17 Exp $
+ * CVS info:   $Id: zmapView.c,v 1.174 2009-12-16 11:04:07 edgrif Exp $
  *-------------------------------------------------------------------
  */
 
@@ -2886,17 +2886,20 @@ static void commandCB(ZMapWindow window, void *caller_data, void *window_data)
 	ZMapWindowCallbackCommandAlign align_cmd = (ZMapWindowCallbackCommandAlign)cmd_any ;
 	gboolean status ;
 	GList *local_sequences = NULL ;
-	ZMapViewBlixemFlags flags = BLIXEM_NO_FLAG;
+	ZMapViewBlixemAlignSet align_type = BLIXEM_NO_MATCHES ;
+
+	/* GHASTLY....ALL CHOICE BIT SHOULD BE IN WINDOW.... */
+	if (align_cmd->single_match)
+	  align_type = BLIXEM_FEATURE_SINGLE_MATCH ;
+	else if (align_cmd->single_feature)
+	  align_type = BLIXEM_FEATURE_ALL_MATCHES ;
+	else if (align_cmd->feature_set)
+	  align_type = BLIXEM_FEATURESET_MATCHES ;
+	else if (align_cmd->multi_sets)
+	  align_type = BLIXEM_MULTI_FEATURESET_MATCHES ;
+	else if (align_cmd->all_sets)
+	  align_type = BLIXEM_ALL_FEATURESET_MATCHES ;
 	
-	if (align_cmd->obey_protein_featuresets)
-	  flags |= BLIXEM_OBEY_PROTEIN_SETS;
-	
-	if (align_cmd->obey_dna_featuresets)
-	  flags |= BLIXEM_OBEY_DNA_SETS;
-
-	if(align_cmd->single_feature)
-	  flags = BLIXEM_SINGLE_FEATURE;
-
 	if ((status = zmapViewBlixemLocalSequences(view, align_cmd->feature, &local_sequences)))
 	  {
 	    if (!view->sequence_server)
@@ -2926,11 +2929,12 @@ static void commandCB(ZMapWindow window, void *caller_data, void *window_data)
 		  {
 		    /* Create the step list that will be used to fetch the sequences. */
 		    view->step_list = zmapViewStepListCreate(NULL, processGetSeqRequests, NULL) ;
-		    zmapViewStepListAddStep(view->step_list, ZMAP_SERVERREQ_GETSEQUENCE, REQUEST_ONFAIL_CANCEL_THREAD) ;
+		    zmapViewStepListAddStep(view->step_list, ZMAP_SERVERREQ_GETSEQUENCE,
+					    REQUEST_ONFAIL_CANCEL_THREAD) ;
 
 		    /* Add the request to the step list. */
 		    req_any = zMapServerRequestCreate(ZMAP_SERVERREQ_GETSEQUENCE,
-						      align_cmd->feature, local_sequences, flags) ;
+						      align_cmd->feature, local_sequences, align_type) ;
 		    request = zmapViewStepListAddServerReq(view->step_list,
 							   view_con, ZMAP_SERVERREQ_GETSEQUENCE, req_any) ;
 		    
@@ -2943,7 +2947,8 @@ static void commandCB(ZMapWindow window, void *caller_data, void *window_data)
 	  {
 	    GPid blixem_pid ;
 
-	    if ((status = zmapViewCallBlixem(view, align_cmd->feature, NULL, flags, &blixem_pid, &(view->kill_blixems))))
+	    if ((status = zmapViewCallBlixem(view, align_cmd->feature, NULL, align_type,
+					     &blixem_pid, &(view->kill_blixems))))
 	      view->spawned_processes = g_list_append(view->spawned_processes, GINT_TO_POINTER(blixem_pid)) ;
 	  }
 
diff --git a/src/zmapView/zmapView_P.h b/src/zmapView/zmapView_P.h
index b1c4ba70e127be16351aa467441bd35264b22a9e..b598fbc2513b5607899515c9689307a33c066316 100755
--- a/src/zmapView/zmapView_P.h
+++ b/src/zmapView/zmapView_P.h
@@ -24,9 +24,9 @@
  *
  * Description: 
  * HISTORY:
- * Last edited: Oct  1 15:33 2009 (edgrif)
+ * Last edited: Dec 14 13:18 2009 (edgrif)
  * Created: Thu May 13 15:06:21 2004 (edgrif)
- * CVS info:   $Id: zmapView_P.h,v 1.52 2009-10-02 09:19:32 edgrif Exp $
+ * CVS info:   $Id: zmapView_P.h,v 1.53 2009-12-16 11:05:58 edgrif Exp $
  *-------------------------------------------------------------------
  */
 #ifndef ZMAP_VIEW_P_H
@@ -41,14 +41,15 @@
 #include <ZMap/zmapXRemote.h>
 
 
-
 typedef enum
   {
-    BLIXEM_NO_FLAG           = 0,
-    BLIXEM_OBEY_DNA_SETS     = 1 << 0,
-    BLIXEM_OBEY_PROTEIN_SETS = 1 << 1,
-    BLIXEM_SINGLE_FEATURE    = 1 << 2,
-  } ZMapViewBlixemFlags;
+    BLIXEM_NO_MATCHES,
+    BLIXEM_FEATURE_SINGLE_MATCH,			    /* Single match of a single sequence. */
+    BLIXEM_FEATURE_ALL_MATCHES,				    /* All matches of a single sequence. */
+    BLIXEM_FEATURESET_MATCHES,				    /* All matches of all sequences of a set. */
+    BLIXEM_MULTI_FEATURESET_MATCHES,			    /* All matches of all sequences in several sets. */
+    BLIXEM_ALL_FEATURESET_MATCHES			    /* All matches of all sequences in all sets. */
+  } ZMapViewBlixemAlignSet ;
 
 
 
@@ -301,7 +302,7 @@ gboolean zmapAnyConnBusy(GList *connection_list) ;
 char *zmapViewGetStatusAsStr(ZMapViewState state) ;
 gboolean zmapViewBlixemLocalSequences(ZMapView view, ZMapFeature feature, GList **local_sequences_out) ;
 gboolean zmapViewCallBlixem(ZMapView view, ZMapFeature feature, GList *local_sequences,
-			    ZMapViewBlixemFlags flags, GPid *child_pid, gboolean *kill_on_exit) ;
+			    ZMapViewBlixemAlignSet align_set, GPid *child_pid, gboolean *kill_on_exit) ;
 ZMapFeatureContext zmapViewMergeInContext(ZMapView view, ZMapFeatureContext context);
 gboolean zmapViewDrawDiffContext(ZMapView view, ZMapFeatureContext *diff_context);
 void zmapViewEraseFromContext(ZMapView replace_me, ZMapFeatureContext context_inout);