diff --git a/smradius/modules/accounting/mod_accounting_sql.pm b/smradius/modules/accounting/mod_accounting_sql.pm
index a36762826ac55b4ee04267a6d036c07ff73d491f..fb9d473533749bad85735ac39dfa28d313c42110 100644
--- a/smradius/modules/accounting/mod_accounting_sql.pm
+++ b/smradius/modules/accounting/mod_accounting_sql.pm
@@ -166,19 +166,39 @@ sub init
 		# Pull in queries
 		if (defined($scfg->{'mod_accounting_sql'}->{'accounting_start_query'}) &&
 				$scfg->{'mod_accounting_sql'}->{'accounting_start_query'} ne "") {
-			$config->{'accounting_start_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_start_query'};
+			if (ref($scfg->{'mod_accounting_sql'}->{'accounting_start_query'}) eq "ARRAY") {
+				$config->{'accounting_start_query'} = join(' ',
+						@{$scfg->{'mod_accounting_sql'}->{'accounting_start_query'}});
+			} else {
+				$config->{'accounting_start_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_start_query'};
+			}
 		}
 		if (defined($scfg->{'mod_accounting_sql'}->{'accounting_update_query'}) &&
 				$scfg->{'mod_accounting_sql'}->{'accounting_update_query'} ne "") {
-			$config->{'accounting_update_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_update_query'};
+			if (ref($scfg->{'mod_accounting_sql'}->{'accounting_update_query'}) eq "ARRAY") {
+				$config->{'accounting_update_query'} = join(' ',
+						@{$scfg->{'mod_accounting_sql'}->{'accounting_update_query'}});
+			} else {
+				$config->{'accounting_update_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_update_query'};
+			}
 		}
 		if (defined($scfg->{'mod_accounting_sql'}->{'accounting_stop_query'}) &&
 				$scfg->{'mod_accounting_sql'}->{'accounting_stop_query'} ne "") {
-			$config->{'accounting_stop_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_stop_query'};
+			if (ref($scfg->{'mod_accounting_sql'}->{'accounting_stop_query'}) eq "ARRAY") {
+				$config->{'accounting_stop_query'} = join(' ',
+						@{$scfg->{'mod_accounting_sql'}->{'accounting_stop_query'}});
+			} else {
+				$config->{'accounting_stop_query'} = $scfg->{'mod_accounting_sql'}->{'accounting_stop_query'};
+			}
 		}
 		if (defined($scfg->{'mod_accounting_sql'}->{'get_usage_query'}) &&
 				$scfg->{'mod_accounting_sql'}->{'get_usage_query'} ne "") {
-			$config->{'get_usage_query'} = $scfg->{'mod_accounting_sql'}->{'get_usage_query'};
+			if (ref($scfg->{'mod_accounting_sql'}->{'get_usage_query'}) eq "ARRAY") {
+				$config->{'get_usage_query'} = join(' ',
+						@{$scfg->{'mod_accounting_sql'}->{'get_usage_query'}});
+			} else {
+				$config->{'get_usage_query'} = $scfg->{'mod_accounting_sql'}->{'get_usage_query'};
+			}
 		}
 	}
 }
diff --git a/smradius/modules/config/mod_config_sql.pm b/smradius/modules/config/mod_config_sql.pm
index 1ca90b298e4a85b0557350fdbdd8b4db14bf7db5..52350e20d752cc9b4a4694678651349c333bb511 100644
--- a/smradius/modules/config/mod_config_sql.pm
+++ b/smradius/modules/config/mod_config_sql.pm
@@ -78,7 +78,11 @@ sub init
 		# Pull in queries
 		if (defined($scfg->{'mod_config_sql'}->{'get_config_query'}) &&
 				$scfg->{'mod_config_sql'}->{'get_config_query'} ne "") {
-			$config->{'get_config_query'} = $scfg->{'mod_config_sql'}->{'get_config_query'};
+			if (ref($scfg->{'mod_config_sql'}->{'get_config_query'}) eq "ARRAY") {
+				$config->{'get_config_query'} = join(' ',@{$scfg->{'mod_config_sql'}->{'get_config_query'}});
+			} else {
+				$config->{'get_config_query'} = $scfg->{'mod_config_sql'}->{'get_config_query'};
+			}
 			
 		}
 	}
@@ -98,26 +102,23 @@ sub getConfig
 	my ($server,$user,$packet) = @_;
 
 
-	# Attributes to return
-	my %configAttributes = ();
-
 	# Replace template entries
 	my @dbDoParams = $config->{'get_config_query'};
 	# Query database
 	my $sth = DBSelect(@dbDoParams);
 	if (!$sth) {
 		$server->log(LOG_ERR,"Failed to get config attributes: ".smradius::dblayer::Error());
-		return -1;
+		return MOD_RES_NACK;
 	}
 	
 	# Loop with user attributes
 	while (my $row = $sth->fetchrow_hashref()) {
-		addAttribute($server,\%configAttributes,hashifyLCtoMC($row,qw(Name Operator Value)));
+		processConfigAttribute($server,$user->{'ConfigAttributes'},hashifyLCtoMC($row,qw(Name Operator Value)));
 	}
 
 	DBFreeRes($sth);
 
-	return \%configAttributes;
+	return MOD_RES_ACK;
 }
 
 
diff --git a/smradius/modules/userdb/mod_userdb_sql.pm b/smradius/modules/userdb/mod_userdb_sql.pm
index d0774859c39502d83bba81c0176d944253bb9a18..985a5cea4cf3632ff75e6808e4e0f3df90b68603 100644
--- a/smradius/modules/userdb/mod_userdb_sql.pm
+++ b/smradius/modules/userdb/mod_userdb_sql.pm
@@ -81,7 +81,7 @@ sub init
 		FROM 
 			@TP@group_attributes, @TP@users_to_groups 
 		WHERE 
-			users_to_groups.UserID = %{userdb.ID}
+			users_to_groups.UserID = %{userdb.id}
 			AND group_attributes.GroupID = users_to_groups.GroupID
 	';
 	
@@ -100,17 +100,33 @@ sub init
 		# Pull in queries
 		if (defined($scfg->{'mod_userdb_sql'}->{'userdb_find_query'}) &&
 				$scfg->{'mod_userdb_sql'}->{'userdb_find_query'} ne "") {
-			$config->{'userdb_find_query'} = $scfg->{'mod_userdb_sql'}->{'userdb_find_query'};
+			if (ref($scfg->{'mod_userdb_sql'}->{'userdb_find_query'}) eq "ARRAY") {
+				$config->{'userdb_find_query'} = join(' ', @{$scfg->{'mod_userdb_sql'}->{'userdb_find_query'}});
+			} else {
+				$config->{'userdb_find_query'} = $scfg->{'mod_userdb_sql'}->{'userdb_find_query'};
+			}
 		}
 
 		if (defined($scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'}) &&
 				$scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'} ne "") {
-			$config->{'userdb_get_group_attributes_query'} = $scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'};
+			if (ref($scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'}) eq "ARRAY") {
+				$config->{'userdb_get_group_attributes_query'} = join(' ', 
+						@{$scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'}});
+			} else {
+				$config->{'userdb_get_group_attributes_query'} = 
+						$scfg->{'mod_userdb_sql'}->{'userdb_get_group_attributes_query'};
+			}
 		}
 
 		if (defined($scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'}) &&
 				$scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'} ne "") {
-			$config->{'userdb_get_user_attributes_query'} = $scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'};
+			if (ref($scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'}) eq "ARRAY") {
+				$config->{'userdb_get_user_attributes_query'} = join(' ',
+						@{$scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'}});
+			} else {
+					$config->{'userdb_get_user_attributes_query'} = 
+						$scfg->{'mod_userdb_sql'}->{'userdb_get_user_attributes_query'};
+			}
 		}
 	}
 }
@@ -180,7 +196,7 @@ sub get
 		$template->{'request'}->{$attr} = $packet->rawattr($attr)
 	}
 	# Add in userdb data
-	foreach my $item ($user->{'_UserDB_Data'}) {
+	foreach my $item (keys %{$user->{'_UserDB_Data'}}) {
 		$template->{'userdb'}->{$item} =  $user->{'_UserDB_Data'}->{$item};
 	}
 
@@ -189,6 +205,7 @@ sub get
 
 	# Replace template entries
 	my @dbDoParams = templateReplace($config->{'userdb_get_group_attributes_query'},$template);
+
 	# Query database
 	my $sth = DBSelect(@dbDoParams);
 	if (!$sth) {
diff --git a/smradiusd b/smradiusd
index b6b913e716affc0444f9feeb858ca98f90247cc3..b6a57744c0d8987f9b5fdd217ac83c99fe052ef9 100755
--- a/smradiusd
+++ b/smradiusd
@@ -494,20 +494,24 @@ sub process_request {
 		if ($module->{'Config_get'}) {
 
 			# Get result from config module
-			$self->log(LOG_INFO,"[SMRADIUS] FIND: Trying plugin '".$module->{'Name'}."' for incoming connection");
-			my ($configData) = $module->{'Config_get'}($self,$user,$pkt);
-			# If we got some config back, process it
-			if ($configData) {
-				# Loop with attributes we got from the user
-				foreach my $attrName (keys %{$configData}) {
-					# Loop with operators
-					foreach my $attrOp (keys %{$configData->{$attrName}}) {
-						# Grab attribute
-						my $attr = $configData->{$attrName}->{$attrOp};
-						# Process attribute
-						my $res = processConfigAttribute($self,$user->{'ConfigAttributes'},$attr);
-					}
-				}
+			$self->log(LOG_INFO,"[SMRADIUS] CONFIG: Trying plugin '".$module->{'Name'}."' for incoming connection");
+			my $res = $module->{'Config_get'}($self,$user,$pkt);
+
+			# Check result
+			if (!defined($res)) {
+				$self->log(LOG_DEBUG,"[SMRADIUS] CONFIG: Error with plugin '".$module->{'Name'}."'");
+
+			# Check if we skipping this plugin
+			} elsif ($res == MOD_RES_SKIP) {
+				$self->log(LOG_DEBUG,"[SMRADIUS] CONFIG: Skipping '".$module->{'Name'}."'");
+
+			# Check if we got a positive result back
+			} elsif ($res == MOD_RES_ACK) {
+				$self->log(LOG_NOTICE,"[SMRADIUS] CONFIG: Configuration retrieved from '".$module->{'Name'}."'");
+
+			# Check if we got a negative result back
+			} elsif ($res == MOD_RES_NACK) {
+				$self->log(LOG_NOTICE,"[SMRADIUS] CONFIG: Configuration problem when using '".$module->{'Name'}."'");
 			}
 		}
 	}
@@ -866,6 +870,7 @@ sub process_request {
 					}
 				}
 			}
+use Data::Dumper; print ( STDERR  "ATTRIBUTES: ".Dumper($user->{'ConfigAttributes'}) );
 			$udp_packet = auth_resp($resp->pack, getAttributeValue($user->{'ConfigAttributes'},"SMRadius-Config-Secret"));
 			$server->{'client'}->send($udp_packet);