--- a/contrib/brl/bseg/bvxm/tests/test_apm_processors.cxx
+++ b/contrib/brl/bseg/bvxm/tests/test_apm_processors.cxx
@@ -118,12 +118,13 @@
 {
   typedef bsta_num_obs<bsta_gaussian_indep<float,dim> > gauss_type;
   typedef bsta_num_obs<bsta_mixture_fixed<gauss_type,modes> > mix_gauss_type;
+  typedef typename bvxm_mog_mc_processor<dim,modes>::obs_datatype data_type_;
   bvxm_mog_mc_processor<dim,modes> processor;
   bool result = true;
 
   vcl_cout << "Initializing slabs " << vcl_endl; 
-  bvxm_voxel_slab<typename bvxm_mog_mc_processor<dim,modes>::obs_datatype> obs1(10,10,1);
-  obs1.fill(typename bvxm_mog_mc_processor<dim,modes>::obs_datatype(0.3f));
+  bvxm_voxel_slab<data_type_> obs1(10,10,1);
+  obs1.fill(data_type_(0.3f));
   
   bvxm_voxel_slab<float> weight(10,10,1);
   weight.fill(0.01f);
@@ -134,24 +135,24 @@
    // test the  update, expected_color and most_probable_mode_color methods
   vcl_cout << "Updating model observation 1" << vcl_endl; 
   result = result & processor.update(appear, obs1, weight);
-  bvxm_voxel_slab<typename bvxm_mog_mc_processor<dim,modes>::obs_datatype> obs2(10,10,1);
-  obs2.fill(typename bvxm_mog_mc_processor<dim,modes>::obs_datatype(0.8f));
+  bvxm_voxel_slab<data_type_> obs2(10,10,1);
+  obs2.fill(data_type_(0.8f));
   vcl_cout << "Updating model observation 2" << vcl_endl; 
   result = result & processor.update(appear, obs2, weight);
-  bvxm_voxel_slab<typename bvxm_mog_mc_processor<dim,modes>::obs_datatype> obs3(10,10,1);
-  obs3.fill(typename bvxm_mog_mc_processor<dim,modes>::obs_datatype(0.81f));
+  bvxm_voxel_slab<data_type_> obs3(10,10,1);
+  obs3.fill(data_type_(0.81f));
   vcl_cout << "Updating model observation 3" << vcl_endl; 
   result = result & processor.update(appear, obs3, weight);
   TEST("processor.update()", result, true);
 
-  bvxm_voxel_slab<typename bvxm_mog_mc_processor<dim,modes>::obs_datatype> mp_slab = processor.most_probable_mode_color(appear);
+  bvxm_voxel_slab<data_type_> mp_slab = processor.most_probable_mode_color(appear);
 
   for(unsigned i=0; i<dim; i++)
   {
     TEST_NEAR("most probable", (*mp_slab.first_voxel())[i], 0.8f,0.01f);
   }
   
-  bvxm_voxel_slab<typename bvxm_mog_mc_processor<dim,modes>::obs_datatype> mean_slab = processor.expected_color(appear);
+  bvxm_voxel_slab<data_type_> mean_slab = processor.expected_color(appear);
   for(unsigned i=0; i<dim; i++)
   {
     TEST_NEAR("expected", (*mean_slab.first_voxel())[i],0.63f,0.01f);