diff --git a/src/operator.jl b/src/operator.jl
index e0ae11c548d0839d86d2d0d60e517c5299b59e48..bc27855048bb3d71c7d11f744fda397f8bdc4655 100644
--- a/src/operator.jl
+++ b/src/operator.jl
@@ -177,8 +177,9 @@ function project_img(space::FeSpace, img)
 	    for jdim in 1:nrdims, ldofj in 1:nldofs
 		gdofj = space.dofmap[jdim, ldofj, cell]
 
-		phij = SArray{Tuple{space.size...}}(qphi[:, jdim, ldofj, k])
-		dphij = SArray{Tuple{space.size..., d}}(dqphi[:, :, jdim, ldofj, k] * delmapinv)
+		phij = SArray{Tuple{space.size...}}(view(qphi, :, jdim, ldofj, k))
+		dphij = SArray{Tuple{space.size..., d}}(
+		    SArray{Tuple{nrdims, d}}(view(dqphi, :, :, jdim, ldofj, k)) * delmapinv)
 
 		lv = qw[k] * l(x, phij, dphij; opvalues...) * intel
 		b[gdofj] += lv
@@ -187,8 +188,9 @@ function project_img(space::FeSpace, img)
 		for idim in 1:nrdims, ldofi in 1:nldofs
 		    gdofi = space.dofmap[idim, ldofi, cell]
 
-		    phii = SArray{Tuple{space.size...}}(qphi[:, idim, ldofi, k])
-		    dphii = SArray{Tuple{space.size..., d}}(dqphi[:, :, idim, ldofi, k] * delmapinv)
+		    phii = SArray{Tuple{space.size...}}(view(qphi, :, idim, ldofi, k))
+		    dphii = SArray{Tuple{space.size..., d}}(
+			SArray{Tuple{nrdims, d}}(view(dqphi, :, :, idim, ldofi, k)) * delmapinv)
 
 		    av = qw[k] * a(x, phii, dphii, phij, dphij; opvalues...) * intel
 		    push!(I, gdofi)