diff --git a/bedpostx_datacheck b/bedpostx_datacheck
index 2679ea703cd4146521bd2ded3ae9deb2e00fe634..721a214692f8f8d8c4a01f1def38b95cf75afdee 100755
--- a/bedpostx_datacheck
+++ b/bedpostx_datacheck
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+
 if [ $# -lt 1 ]; then 
     echo "Usage: $0 data_dir"
     exit 1;
@@ -39,20 +40,32 @@ if [ `${FSLDIR}/bin/imtest ${DIR}/data` -eq 1 -a `${FSLDIR}/bin/imtest ${DIR}/no
 	echo "data dimensions do not match mask dimensions"
     fi
     
-    bvallen=`cat ${DIR}/bvals|grep -v "^[ 	]*$"|wc -w`
+    bvallenw=`cat ${DIR}/bvals|wc -w`
+    bvallenl=`cat ${DIR}/bvals|grep -v "^[ 	]*$"|wc -l`
+    bvallen=`echo "$bvallenw / $bvallenl"|bc`
+
     bveclenw=`cat ${DIR}/bvecs|wc -w`
     bveclenl=`cat ${DIR}/bvecs|grep -v "^[ 	]*$"|wc -l`
     bveclen=`echo "$bveclenw / $bveclenl"|bc`
 
-    
-    if [ $bveclen -ne $bvallen ];then
+    if [ $bveclenl -ne 3 -a $bveclen -ne 3 ];then
+	echo "bvecs is not 3xN or Nx3 format"
+    fi
+
+    if [ $bvallenl -ge 2 -a $bvallen -ge 2 ];then
+	echo "bvals is not 1xN or Nx1 format"
+    fi
+ 
+    if [ $bveclen -ne $bvallenw -a $bveclenl -ne $bvallenw ];then
 	echo "bvecs and bvals are incompatible"
     fi
-    if [ $bvallen -ne $dt ];then 
+
+    if [ $bvallenw -ne $dt ];then 
 	echo "number of elements in bvals is not equal to number of vols in data"
     fi
-    if [ $bveclen -ne $dt ];then 
-	echo "number of elements per line in bvecs is not equal to number of vols in data"
+
+    if [ $bveclen -ne $dt -a $bveclenl -ne $dt ];then 
+	echo "number of vectors in bvecs is not equal to number of vols in data"
     fi
 	
 fi