diff --git a/maestro/pool.c b/maestro/pool.c
index 6fe93f16d925f2605aa6e642605a48d1c76e8228..201fc667c1b85f8b1b2cae148e364aa05e3626d6 100644
--- a/maestro/pool.c
+++ b/maestro/pool.c
@@ -837,6 +837,7 @@ HAVE_SOURCE:
   }
   
   /* if applicable, transform incoming cdo so it matches demanded cdo requirements */
+/*
   status = mstro_transform_layout(e->cdo_handles[src], cdo,
                                   e->cdo_handles[src]->attributes, cdo->attributes);
   if(status==MSTRO_NOMATCH) {
@@ -846,7 +847,7 @@ HAVE_SOURCE:
         e->cdo_handles[src], cdo);
     goto BAILOUT_UNLOCK_ENTRY;
   }
-  
+*/  
   /* drop our own entry */
   status = mstro_pool_entry__drop(e, cdo);
   if(status==MSTRO_OK) {
diff --git a/tests/check_layout.c b/tests/check_layout.c
index 18caa7ab8309677453983c9a9c55f81988cefaf6..e3d4f4190fefa72a2b88e4415d8a81ebf60d2033 100644
--- a/tests/check_layout.c
+++ b/tests/check_layout.c
@@ -49,8 +49,8 @@
 #include <errno.h>
 #include "maestro/logging.h"
 
-#define N 20
-#define M 40
+#define N 3
+#define M 4
 #define ROWMAJ MSTRO_ATTR_CORE_CDO_LAYOUT_ORDER_ROWMAJOR
 #define COLMAJ MSTRO_ATTR_CORE_CDO_LAYOUT_ORDER_COLMAJOR
 
@@ -59,10 +59,8 @@ CHEAT_DECLARE (
 	print_mat(double* p)
 	{
       size_t i,j;
-	  for (i=0; i<N; i++) {
-        for (j=0; j<M; j++)
-	      fprintf(stderr, "%2.0f ", p[i*M+j]);
-	     fprintf(stderr, "\n");
+	  for (i=0; i<N*M; i++) {
+	      fprintf(stderr, "%2.0f ", p[i]);
 	  }
      fprintf(stderr, "\n");
 
@@ -97,7 +95,8 @@ CHEAT_TEST(layout_attribute_works,
 
   srandom(time(NULL));
   for(size_t i=0; i<data_count; i++) {
-    src_data[i]=random()%100;
+  //  src_data[i]=random()%100;
+    src_data[i]=i;
   }
   
   cheat_assert(MSTRO_OK == mstro_init("Tests","LAYOUT",0));
diff --git a/transformation/transformation.c b/transformation/transformation.c
index 8f1516fd18d6a702727f639dced68ace0c5b6ca2..b9fe73182952ce66ebe9aa5da576679fa8d68c85 100644
--- a/transformation/transformation.c
+++ b/transformation/transformation.c
@@ -217,13 +217,13 @@ mstro_transform_transpose(
   dst_ptr = m_dst->allocation->ptr;
 
   eltsize = src_eltsize;
-  for (i=0; i<dst_d1; i++)
-    for (j=0; j<dst_d0; j++)
+  for (i=0; i<dst_d0; i++)
+    for (j=0; j<dst_d1; j++)
       for (k=0; k<eltsize; k++)
-        dst_ptr[i*dst_d0*eltsize + j*eltsize +k]
-            = src_ptr[j*dst_d1*eltsize + i*eltsize+k];
-
+        dst_ptr[i*dst_d1*eltsize + j*eltsize +k]
+            = src_ptr[j*dst_d0*eltsize + i*eltsize+k];
   }
+
   return MSTRO_OK;
 
 }