diff --git a/R/importWaterML1.r b/R/importWaterML1.r
index 8531b0c77eefa5ef6b81839219791148809bc094..f8c2d483f70de29d3a0c156350046ab079a49d85 100644
--- a/R/importWaterML1.r
+++ b/R/importWaterML1.r
@@ -95,6 +95,7 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
   
   timeSeries <- xpathApply(doc, "//ns1:timeSeries", namespaces = ns)
   
+  
   if(0 == length(timeSeries)){
     message("Returning an empty dataset")
     df <- data.frame()
@@ -103,6 +104,8 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
   }
   
   attList <- list()
+  dataColumns <- c()
+  qualColumns <- c()
   
   for (i in 1:length(timeSeries)){
     
@@ -184,9 +187,12 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
         
         if("qualifiers" %in% names(df)){
           qualName <- paste(valueName,"cd",sep="_")
-          names(df)[which(names(df) == "qualifiers")] <- qualName       
+          names(df)[which(names(df) == "qualifiers")] <- qualName
+          qualColumns <- c(qualColumns, qualName)
         }
         
+        dataColumns <- c(dataColumns, valueName)
+        
         if("dateTime" %in% attributeNames){
           
           datetime <- xpathSApply(subChunk, "ns1:value/@dateTime",namespaces = chunkNS)
@@ -274,6 +280,8 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
         
         columnsOrderd <- columnsOrdered[columnsOrdered %in% names(df)]
         
+        
+        
         df <- df[,columnsOrderd]
                   
         names(extraSiteData) <- make.unique(names(extraSiteData))
@@ -341,13 +349,17 @@ importWaterML1 <- function(obs_url,asDateTime=FALSE, tz=""){
     
   }
   
-  sortingColumns <- c("agency","site_no","dateTime","tz_cd")
-  dataColumns <- names(mergedDF)[!(names(mergedDF) %in% sortingColumns)]
-  dataColumns <- dataColumns[-grep("_cd",dataColumns)]
+#   sortingColumns <- c("agency","site_no","dateTime","tz_cd")
+#   dataColumns <- names(mergedDF)[!(names(mergedDF) %in% sortingColumns)]
+#   dataColumns <- dataColumns[-grep("_cd",dataColumns)]
   
+  sortingColumns <- names(mergedDF)[!(names(mergedDF) %in% c(dataColumns,qualColumns))]
+
   meltedmergedDF  <- melt(mergedDF,id.vars=sortingColumns)
   meltedmergedDF  <- meltedmergedDF[!is.na(meltedmergedDF$value),] 
-  mergedDF2 <- dcast(meltedmergedDF, dateTime+site_no+agency+tz_cd~variable, drop=FALSE)
+
+  castFormula <- as.formula(paste(paste(sortingColumns, collapse="+"),"variable",sep="~"))
+  mergedDF2 <- dcast(meltedmergedDF, castFormula, drop=FALSE)
   dataColumns2 <- !(names(mergedDF2) %in% sortingColumns)
   mergedDF <- mergedDF2[rowSums(is.na(mergedDF2[,dataColumns2])) != sum(dataColumns2),]