diff --git a/fsl/data/featdesign.py b/fsl/data/featdesign.py
index 0afc8750aca1155eee5ac85aaab01299716d8595..d6ebf2a32dd116589e32855816cdb943ce5ddb37 100644
--- a/fsl/data/featdesign.py
+++ b/fsl/data/featdesign.py
@@ -151,24 +151,39 @@ class FEATFSFDesign(object):
 
         if len(self.__evs) != self.__numEVs:
             raise FSFError('Number of EVs does not match design.mat')
+
+        # Load the voxelwise images now,
+        # so they're ready to be used by
+        # the getDesign method.
+        for ev in self.__evs:
+            
+            if not isinstance(ev, (VoxelwiseEV, VoxelwiseConfoundEV)):
+                continue
+
+            # The path to some voxelwise 
+            # EVs may not be present - 
+            # see the VoxelwisEV class.
+            if ev.filename is not None: ev.image = fslimage.Image(ev.filename)
+            else:                       ev.image = None
  
     
     def getDesign(self, x, y, z):
-        """Returns the design matrix for the specified voxel.
-        """
+        """Returns the design matrix for the specified voxel. """
 
-        # if no vox EVs, just
-        # return the design
-        pass
+        design = np.array(self.__design)
 
+        for ev in self.__evs:
 
-    def getVoxelEVFile(self, idx):
-        return self.__evs[idx].filename
+            if not isinstance(ev, (VoxelwiseEV, VoxelwiseConfoundEV)):
+                continue
 
-    
-    def getVoxelConfoundFile(self, idx):
-        return self.__evs[idx].filename
+            if ev.image is None:
+                log.warning('Voxel EV image missing '
+                            'for ev {}'.format(ev.index))
+
+            design[:, ev.index] = ev.image.data[x, y, z, :]
 
+        return design
 
 
 class EV(object):