diff --git a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java
index a65aa32..d7ad727 100644
--- a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java
+++ b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java
@@ -71,6 +71,7 @@
 	
 	private boolean importProcedures;
 	private boolean importKeys = true;
+	private boolean importForeignKeys = true;
 	private boolean importIndexes;
 	private String procedureNamePattern;
 	protected boolean useFullSchemaName = true;	
@@ -129,7 +130,9 @@
 		if (importKeys) {
 			getPrimaryKeys(metadataFactory, metadata, tables);
 			getIndexes(metadataFactory, metadata, tables, !importIndexes);
-			getForeignKeys(metadataFactory, metadata, tables, tableMap);
+			if (importForeignKeys) {
+				getForeignKeys(metadataFactory, metadata, tables, tableMap);
+			}
 		} else if (importIndexes) {
 			getIndexes(metadataFactory, metadata, tables, false);
 		}
@@ -220,7 +223,7 @@
 				record.setLength(columns.getInt(9));
 				record.setScale(columns.getInt(10));
 				record.setRadix(columns.getInt(11));
-				record.setNullType(NullType.values()[columns.getShort(12)]);
+				record.setNullType(NullType.values()[columns.getInt(12)]);
 				record.setAnnotation(columns.getString(13));
 			}
 		}
@@ -371,7 +374,7 @@
 		column.setLength(columnSize);
 		column.setNativeType(typeName);
 		column.setRadix(columns.getInt(10));
-		column.setNullType(NullType.values()[columns.getShort(11)]);
+		column.setNullType(NullType.values()[columns.getInt(11)]);
 		column.setUpdatable(true);
 		String remarks = columns.getString(12);
 		column.setAnnotation(remarks);
@@ -617,6 +620,10 @@
 	public void setTableTypes(String[] tableTypes) {
 		this.tableTypes = tableTypes;
 	}
+	
+	public String[] getTableTypes() {
+		return tableTypes;
+	}
 
 	public void setUseFullSchemaName(boolean useFullSchemaName) {
 		this.useFullSchemaName = useFullSchemaName;
@@ -642,9 +649,17 @@
 		this.importApproximateIndexes = importApproximateIndexes;
 	}
 
+	/**
+	 * @deprecated
+	 * @see #setWidenUnsignedTypes
+	 */
 	public void setWidenUnsingedTypes(boolean widenUnsingedTypes) {
 		this.widenUnsingedTypes = widenUnsingedTypes;
 	}
+	
+	public void setWidenUnsignedTypes(boolean widenUnsignedTypes) {
+		this.widenUnsingedTypes = widenUnsignedTypes;
+	}	
 	
 	public void setQuoteNameInSource(boolean quoteIdentifiers) {
 		this.quoteNameInSource = quoteIdentifiers;
@@ -692,4 +707,8 @@
 		this.importStatistics = importStatistics;
 	}
 	
+	public void setImportForeignKeys(boolean importForeignKeys) {
+		this.importForeignKeys = importForeignKeys;
+	}
+	
 }
diff --git a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
index cef481b..91b4deb 100644
--- a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
+++ b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeExecutionFactory.java
@@ -46,6 +46,7 @@
 import org.teiid.translator.TypeFacility;
 import org.teiid.translator.jdbc.AliasModifier;
 import org.teiid.translator.jdbc.JDBCExecutionFactory;
+import org.teiid.translator.jdbc.JDBCMetdataProcessor;
 /** 
  * Translator class for accessing the ModeShape JCR repository.  
  */
@@ -251,5 +252,9 @@
     public boolean supportsSetQueryOrderBy() {
     	return false;
     }
+	
+	protected JDBCMetdataProcessor createMetadataProcessor() {
+		return new ModeShapeJDBCMetdataProcessor();
+	}
         
 }
diff --git a/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeJDBCMetdataProcessor.java b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeJDBCMetdataProcessor.java
new file mode 100644
index 0000000..dc0ec29
--- /dev/null
+++ b/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/modeshape/ModeShapeJDBCMetdataProcessor.java
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+
+package org.teiid.translator.jdbc.modeshape;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+
+import org.teiid.metadata.MetadataFactory;
+import org.teiid.translator.jdbc.JDBCMetdataProcessor;
+
+
+/**
+ * Reads from {@link DatabaseMetaData} and creates metadata through the {@link MetadataFactory}.
+ * 
+ * See https://issues.jboss.org/browse/TEIID-2786 which describes this implementation.
+ * 
+ */
+public class ModeShapeJDBCMetdataProcessor extends JDBCMetdataProcessor {
+	
+	public ModeShapeJDBCMetdataProcessor() {
+		setWidenUnsignedTypes(false);
+		setUseQualifiedName(false);
+		setUseCatalogName(false);
+		setImportForeignKeys(false);
+	}
+	
+	@Override
+	public void getConnectorMetadata(Connection conn, MetadataFactory metadataFactory)
+	throws SQLException {
+		
+		if (getTableTypes() == null || getTableTypes().length == 0) {
+			setTableTypes( new String[] {"VIEW" } ); //$NON-NLS-1$
+		}
+		
+		super.getConnectorMetadata(conn, metadataFactory);			
+	}
+	
+}