diff --git a/R/readNWISpCode.r b/R/readNWISpCode.r
index f6afad5309a14c71ef0eddd2f346f83a61623162..92e05b64b871e9ce81a965733c7999d62df41bbd 100644
--- a/R/readNWISpCode.r
+++ b/R/readNWISpCode.r
@@ -1,9 +1,11 @@
 #' USGS Parameter Data Retrieval
 #'
-#' Imports data from NWIS about meaured parameter based on user-supplied parameter code.
+#' Imports data from NWIS about meaured parameter based on user-supplied parameter code or codes.
 #' This function gets the data from here: \url{http://nwis.waterdata.usgs.gov/nwis/pmcodes}
 #'
-#' @param parameterCd character of USGS parameter codes (or multiple parameter codes).  This is usually an 5 digit number.
+#' @param parameterCd character of USGS parameter codes (or multiple parameter codes).  These are 5 digit number codes
+#' that can be found here: \link{http://help.waterdata.usgs.gov/codes-and-parameters/parameters}. To get a 
+#' complete list of all current parameter codes in the USGS, use "all" as the input.
 #' @keywords data import USGS web service
 #' @return parameterData data frame with all information from the USGS about the particular parameter.
 #' 
@@ -22,43 +24,49 @@
 #' paramINFO <- readNWISpCode(c('01075','00060','00931'))
 readNWISpCode <- function(parameterCd){
  
-  pcodeCheck <- all(nchar(parameterCd) == 5) & all(!is.na(suppressWarnings(as.numeric(parameterCd))))
+  if(any(parameterCd == "all")){
+    fullURL <- "http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
+    fullPcodeDownload <- importRDB1(fullURL)
+    return(fullPcodeDownload)
+    
+  } else {
+    pcodeCheck <- all(nchar(parameterCd) == 5) & all(!is.na(suppressWarnings(as.numeric(parameterCd))))
   
-  if(!pcodeCheck){
-    goodIndex <- which(parameterCd %in% parameterCdFile$parameter_cd)
-    if(length(goodIndex) > 0){
-      badPcode <- parameterCd[-goodIndex]
-    } else {
-      badPcode <- parameterCd
+    if(!pcodeCheck){
+      goodIndex <- which(parameterCd %in% parameterCdFile$parameter_cd)
+      if(length(goodIndex) > 0){
+        badPcode <- parameterCd[-goodIndex]
+      } else {
+        badPcode <- parameterCd
+      }
+      message("The following pCodes seem mistyped:",paste(badPcode,collapse=","))
+      parameterCd <- parameterCd[goodIndex]
     }
-    message("The following pCodes seem mistyped:",paste(badPcode,collapse=","))
-    parameterCd <- parameterCd[goodIndex]
-  }
-  
-  parameterData <- parameterCdFile[parameterCdFile$parameter_cd %in% parameterCd,]
-
-  if(nrow(parameterData) != length(parameterCd)){
     
-    if(length(parameterCd) == 1){
-      url <- paste0("http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=pm_search",
-                   "&pm_search=", parameterCd,
-                   "&format=rdb", "&show=parameter_group_nm",
-                   "&show=parameter_nm", "&show=casrn",
-                   "&show=srsname", "&show=parameter_units")
-      newData <- importRDB1(url,asDateTime = FALSE)
-    } else {
+    parameterData <- parameterCdFile[parameterCdFile$parameter_cd %in% parameterCd,]
+  
+    if(nrow(parameterData) != length(parameterCd)){
       
-      #TODO: add else...
-      fullURL <- "http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
-      fullPcodeDownload <- importRDB1(fullURL)
-      newData <- fullPcodeDownload[fullPcodeDownload$parameter_cd %in% parameterCd,]
+      if(length(parameterCd) == 1){
+        url <- paste0("http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=pm_search",
+                     "&pm_search=", parameterCd,
+                     "&format=rdb", "&show=parameter_group_nm",
+                     "&show=parameter_nm", "&show=casrn",
+                     "&show=srsname", "&show=parameter_units")
+        newData <- importRDB1(url,asDateTime = FALSE)
+      } else {
+        
+        #TODO: add else...
+        fullURL <- "http://nwis.waterdata.usgs.gov/nwis/pmcodes/pmcodes?radio_pm_search=param_group&pm_group=All+--+include+all+parameter+groups&format=rdb&show=parameter_group_nm&show=parameter_nm&show=casrn&show=srsname&show=parameter_units"
+        fullPcodeDownload <- importRDB1(fullURL)
+        newData <- fullPcodeDownload[fullPcodeDownload$parameter_cd %in% parameterCd,]
+        
+      }
+      return(newData)
       
+    } else {
+      return(parameterData)
     }
-    return(newData)
-    
-  } else {
-    return(parameterData)
   }
   
-  
 }