diff --git a/R/constructNWISURL.r b/R/constructNWISURL.r
index 3866056d20a5edf07a5aea0d0abb90454e117825..212f996d9965cb3ebf9966f56f2c4b7828c085a2 100644
--- a/R/constructNWISURL.r
+++ b/R/constructNWISURL.r
@@ -44,6 +44,17 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate="",endDate="",
 
   service <- match.arg(service, c("dv","uv","iv","qw","gwlevels","rating","peak","meas"))
   
+  pcodeCheck <- all(nchar(parameterCd) == 5) & all(!is.na(suppressWarnings(as.numeric(parameterCd))))
+  
+  if(!pcodeCheck){
+    badIndex <- which(parameterCd %in% parameterCdFile$parameter_cd)
+    if(length(badIndex) > 0){
+      badPcode <- parameterCd[-badIndex]
+    } else {
+      badPcode <- parameterCd
+    }
+    message("The following pCodes may be unavailable:",paste(badPcode,collapse=","))
+  }
   
   multipleSites <- length(siteNumber) > 1
   
@@ -189,7 +200,12 @@ constructNWISURL <- function(siteNumber,parameterCd,startDate="",endDate="",
   if(url.exists(url)){
     return(url)
   } else {
-    stop("The following url doesn't seem to exist:\n",url)
+    if(!(parameterCd %in% parameterCdFile$parameter_cd)){
+      
+      message("The following url doesn't seem to exist:\n",url)
+      return(url)
+    }
+    
   }