diff --git a/R/constructNWISURL.r b/R/constructNWISURL.r
index 2aaf71a40aa615a5149538863b84acef890ada8a..88083fdd77f0a8cf7fa013a72b60cf8cd225eb49 100644
--- a/R/constructNWISURL.r
+++ b/R/constructNWISURL.r
@@ -27,7 +27,7 @@
 #' url_unit <- constructNWISURL(siteNumber,pCode,"2012-06-28","2012-06-30",'iv')
 #' url_qw_single <- constructNWISURL(siteNumber,"01075",startDate,endDate,'qw')
 #' url_qw <- constructNWISURL(siteNumber,c('01075','00029','00453'),startDate,endDate,'qw')
-#' url_wqp <- constructNWISURL(siteNumber,c('01075','00029','00453'),startDate,endDate,'wqp')
+#' url_wqp <- constructNWISURL(paste("USGS",siteNumber,sep="-"),c('01075','00029','00453'),startDate,endDate,'wqp')
 #' url_daily_tsv <- constructNWISURL(siteNumber,pCode,startDate,endDate,'dv',statCd=c("00003","00001"),format="tsv")
 constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,statCd="00003", format="xml",expanded=FALSE,interactive=TRUE){
 
@@ -87,6 +87,14 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st
          wqp = {
            siteNumber <- formatCheckSiteNumber(siteNumber, interactive=interactive)
            
+           #Check for pcode:
+           if(all(nchar(parameterCd) == 5)){
+             suppressWarnings(pCodeLogic <- all(!is.na(as.numeric(parameterCd))))
+           } else {
+             pCodeLogic <- FALSE
+             parameterCd <- URLencode(parameterCd)
+           }
+           
            if(length(parameterCd)>1){
              parameterCd <- paste(parameterCd, collapse=";")
            }
@@ -98,10 +106,10 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate,endDate,service,st
              endDate <- format(as.Date(endDate), format="%m-%d-%Y")
            }
            
-           baseURL <- "http://www.waterqualitydata.us/Result/search?siteid=USGS-"
+           baseURL <- "http://www.waterqualitydata.us/Result/search?siteid="
            url <- paste(baseURL,
                         siteNumber,
-                        "&pCode=",
+                        ifelse(pCodeLogic,"&pCode=","&characteristicName="),
                         parameterCd,
                         "&startDateLo=",
                         startDate,