tryCatch({
           fm <- flexmix( cbind(V1, 1-V1) ~ .-V1, data=dat, k=K,
             model = FLXMRglm(family = binomial(link = link)) )
-          p <- mean(fm@posterior[["scaled"]][,1])
+          pf <- mean(fm@posterior[["scaled"]][,1])
           out <- refit(fm)
           beta_b <- sapply( seq_len(K), function(i) {
             as.double( out@components[[1]][[i]][,1] )
           } )
-          res2 <- rbind(p, beta_b[2:nrow(beta_b),], beta_b[1,])
+          res2 <- rbind(pf, beta_b[2:nrow(beta_b),], beta_b[1,])
         }, error = function(e) {
           res2 <- NA
         })
 
             }
           }
         }
-        # Bet that at least one run succeded:
-        do.call(rbind,best_par)
+        do.call(rbind,best_par) #return NULL on empty list
       }
     ),
     prepareArgs = function(fargs, index) {
       fargs$Y <- io$Y
                        fargs
     }, N=N, ncores=ncores, verbose=TRUE)
-  for (i in 1:2)
+  p <- c(p, 1-sum(p))
+  for (i in 1:length(res)) {
+    for (j in N:1) {
+      if (is.null(res[[i]][[j]]) || is.na(res[[i]][[j]]))
+        res[[i]][[j]] <- NULL
+    }
+    print(paste("Count valid runs for ",i," = ",length(res[[i]]),sep=""))
     res[[i]] <- alignMatrices(res[[i]], ref=rbind(p,beta,b), ls_mode="exact")
+  }
   res
 }