diff --git a/R/plotting.R b/R/plotting.R
index e7ad265a1897ffd0e4e2755d337eb1d023e59a2d..568f425f779a1f6bd8475d9efd967e2e462a26fd 100644
--- a/R/plotting.R
+++ b/R/plotting.R
@@ -457,25 +457,18 @@ make_spec_ms2_plot <- function(db,summ,kvals,labs,axis="linear",asp=1, colrdata=
                                outcols=union(names(kvals),
                                              colnames(summ)))[ms2_sel==T]
 
-    spectra = db$extr$spectra[db$extr$cgm$ms2[,unique(.SD),
-                                              .SDcols=c("ce","scan","rt")],
-                                              on=.(scan),c("ce","rt"):=.(i.ce,i.rt)]
-    subxdata = get_data_from_key(db=db,
-                                 tab=spectra,
-                                 kvals=kvals,
-                                 outcols=c("catid","ce","mz","scan","rt","intensity"))
+    spectra = db$extr$spectra[mdata,on=.(precid,scan),.(catid,ce,mz,scan,rt=i.ms2_rt,intensity)]
     if (NROW(mdata)==0L) return(NULL)
-    if (NROW(subxdata) == 0L) return(NULL)
-    ans = data.table(scan=mdata[,unique(scan)],key="scan")
+    if (NROW(spectra) == 0L) return(NULL)
 
-    meta = db$cat[subxdata[,.(catid=unique(catid))],
+    meta = db$cat[spectra[,.(catid=unique(catid))],
                   on=.(catid),
                   .SD,
                   by=.EACHI,
                   .SDcols=labs]
 
     
-    subxdata = meta[subxdata,on=.(catid),nomatch=NULL]
+    subxdata = meta[spectra,on=.(catid),nomatch=NULL]
 
 
     
@@ -485,7 +478,7 @@ make_spec_ms2_plot <- function(db,summ,kvals,labs,axis="linear",asp=1, colrdata=
 
     if (NROW(pdata)==0L) return(NULL)
     # Aspect ratio.
-    xrng = range(pdata$mz)
+    xrng = range(pdata$mz,na.rm=T)
     dx = abs(xrng[[2]]-xrng[[1]])
     yrng = range(pdata$intensity)
     dy = abs(yrng[[2]]-yrng[[1]])