diff --git a/handler.go b/handler.go
index c719e6f208de040c1d5d45893306f4bc008c0ddd..597630f1bfccae2ed91c37ddafa8655a1af2cf30 100644
--- a/handler.go
+++ b/handler.go
@@ -235,7 +235,9 @@ func (h *handler) handleCall(cp *callProc, msg *jsonrpcMessage) *jsonrpcMessage
 			}
 			err := h.conn.writeJSON(cp.ctx, val)
 			if err != nil {
-				close(mw.notifications)
+				if mw.notifications != nil {
+					close(mw.notifications)
+				}
 				return msg.errorResponse(err)
 			}
 		}