diff --git a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
index 9ae8927..9dc1426 100644
--- a/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
+++ b/libraries/kiwi/kiwi-sparql/src/main/java/org/apache/marmotta/kiwi/sparql/builder/SQLBuilder.java
@@ -614,8 +614,9 @@
         Collections.sort(vars, SQLVariable.sparqlNameComparator);
 
         for(SQLVariable v : vars) {
+            final String projectedName = v.getName();
             if(v.getProjectionType() != ValueType.NONE && (projectedVars.isEmpty() || projectedVars.contains(v.getSparqlName()))) {
-                final String projectedName = v.getName();
+
 
                 if (v.getExpressions() != null && v.getExpressions().size() > 0) {
                     String fromName = v.getExpressions().get(0);
@@ -630,7 +631,7 @@
                     projections.add(v.getLiteralLangExpression() + " AS " + projectedName + "_LANG");
                 }
             } else {
-                projections.add("NULL"); //fix for MARMOTTA-460
+                projections.add("NULL AS " + projectedName); //fix for MARMOTTA-460
             }
         }
 
diff --git a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
index 9ab8d3d..53ee91b 100644
--- a/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
+++ b/libraries/kiwi/kiwi-sparql/src/test/java/org/apache/marmotta/kiwi/sparql/test/KiWiSparqlTest.java
@@ -23,7 +23,6 @@
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.marmotta.kiwi.config.KiWiConfiguration;
-import org.apache.marmotta.kiwi.persistence.pgsql.PostgreSQLDialect;
 import org.apache.marmotta.kiwi.sail.KiWiStore;
 import org.apache.marmotta.kiwi.sparql.sail.KiWiSparqlSail;
 import org.apache.marmotta.kiwi.test.junit.KiWiDatabaseRunner;
@@ -342,13 +341,13 @@
     @Test
     public void testMarmotta640_1() throws Exception {
         final String queryString = IOUtils.toString(this.getClass().getResourceAsStream("MARMOTTA-640_1.sparql"), "UTF-8");
-        testQueryEvaluation(queryString);
+        testQueryEvaluation(queryString); //TODO: if we could get data, we could also test the result
     }
 
     @Test
     public void testMarmotta640_2() throws Exception {
         final String queryString = IOUtils.toString(this.getClass().getResourceAsStream("MARMOTTA-640_2.sparql"), "UTF-8");
-        testQueryEvaluation(queryString);
+        testQueryEvaluation(queryString); //TODO: if we could get data, we could also test the result
     }
 
     @Test
