diff --git a/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java b/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java
index b776322895e5a977368ce164259a414b3287b25b..54378762edc19b089b92b7769e605ad98caa57e2 100644
--- a/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java
+++ b/orientdb/src/main/java/com/yahoo/ycsb/db/OrientDBClient.java
@@ -280,19 +280,20 @@ public class OrientDBClient extends DB {
       int entrycount = 0;
       final OIndexCursor entries = dictionary.getIndex().iterateEntriesMajor(startkey, true, true);
 
-      while (entries.hasNext() && entrycount < recordcount) {
-        final Entry<Object, OIdentifiable> entry = entries.nextEntry();
-        final ODocument document = entry.getValue().getRecord();
+      if (fields != null && !fields.isEmpty()) {
+        while (entries.hasNext() && entrycount < recordcount) {
+          final Entry<Object, OIdentifiable> entry = entries.nextEntry();
+          final ODocument document = entry.getValue().getRecord();
 
-        final HashMap<String, ByteIterator> map =
-            new HashMap<String, ByteIterator>();
-        result.add(map);
+          final HashMap<String, ByteIterator> map = new HashMap<String, ByteIterator>();
+          result.add(map);
 
-        for (String field : fields) {
-          map.put(field, new StringByteIterator((String) document.field(field)));
-        }
+          for (String field : fields) {
+            map.put(field, new StringByteIterator((String) document.field(field)));
+          }
 
-        entrycount++;
+          entrycount++;
+        }
       }
 
       return Status.OK;