diff --git a/lib/modules/Array.pmod b/lib/modules/Array.pmod
index 5071232df1f5d15c365ab8b0a50746c66e10fec2..381d3b96f9857710c7f8d669bb6a356e9cca0105 100644
--- a/lib/modules/Array.pmod
+++ b/lib/modules/Array.pmod
@@ -182,9 +182,10 @@ array columns(array x, array ind)
 
 array transpose(array x)
 {
-  array ret=allocate(sizeof(x[0]));
-  for(int e=0;e<sizeof(x[0]);e++) ret[e]=column(x,e);
-  return ret;
+   if (!sizeof(x)) return x;
+   array ret=allocate(sizeof(x[0]));
+   for(int e=0;e<sizeof(x[0]);e++) ret[e]=column(x,e);
+   return ret;
 }
 
 // diff3, complement to diff (alpha stage)